source: trunk/CrypPlugins/PrimeTest/PrimeTest.cs @ 419

Last change on this file since 419 was 419, checked in by Thomas Schmid, 12 years ago
  • merged IControl branch to trunk
  • added KeySearcher sample: KeySearcher-Sample
  • changed some plugins to work with new enumeration
  • new bins
File size: 3.9 KB
Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using Cryptool.PluginBase.Tool;
6using Cryptool.PluginBase;
7using LibGmpWrapper;
8using Cryptool.PluginBase.IO;
9
10namespace PrimeTest
11{
12  [PluginInfo(false, "Primetest", "Primetest", null, "PrimeTest/icon.png")] 
13 
14  public class PrimeTest:IThroughput
15  {
16    #region IPlugin Members
17
18    public event Cryptool.PluginBase.StatusChangedEventHandler OnPluginStatusChanged;
19    private void FireOnPluginStatusChangedEvent()
20    {
21      if (OnPluginStatusChanged != null) OnPluginStatusChanged(this, new StatusEventArgs(0));
22    }
23
24    public event Cryptool.PluginBase.GuiLogNotificationEventHandler OnGuiLogNotificationOccured;
25    private void FireOnGuiLogNotificationOccuredEvent(string message, NotificationLevel lvl)
26    {
27      if (OnGuiLogNotificationOccured != null) OnGuiLogNotificationOccured(this, new GuiLogEventArgs(message, this, lvl));
28    }
29    private void FireOnGuiLogNotificationOccuredEventError(string message)
30    {
31      FireOnGuiLogNotificationOccuredEvent(message, NotificationLevel.Error);
32    }
33
34    public event Cryptool.PluginBase.PluginProgressChangedEventHandler OnPluginProgressChanged;
35    private void FireOnPluginProgressChangedEvent(string message, NotificationLevel lvl)
36    {
37      if (OnPluginProgressChanged != null) OnPluginProgressChanged(this, new PluginProgressEventArgs(0, 0));
38    }
39
40
41    public Cryptool.PluginBase.ISettings Settings
42    {
43      get { return new PrimeTestSettings(); }
44    }
45
46    public System.Windows.Controls.UserControl Presentation
47    {
48      get { return null; }
49    }
50
51    public System.Windows.Controls.UserControl QuickWatchPresentation
52    {
53      get { return null; }
54    }
55
56    public void PreExecution()
57    {
58    }
59
60    public void Execute()
61    {
62      if (m_Value != null)
63        Output = m_Value.IsProbablePrime(10);
64      else
65        Output = false;
66    }
67
68    public void PostExecution()
69    {
70    }
71
72    public void Pause()
73    {
74    }
75
76    public void Stop()
77    {
78    }
79
80    public void Initialize()
81    {
82    }
83
84    public void Dispose()
85    {
86    }
87
88    #endregion
89
90    #region INotifyPropertyChanged Members
91
92    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
93    private void FirePropertyChangeEvent(string propertyName)
94    {
95      if (PropertyChanged != null) PropertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
96    }
97    #endregion
98
99    #region Properties
100    private string m_InputString;
101    GmpBigInteger m_Value = null;
102    [PropertyInfo(Direction.InputData, "Text input", "Input a string that represent a natural number", "", true, false, DisplayLevel.Beginner, QuickWatchFormat.Text,null)]
103    public string InputString
104    {
105      get { return this.m_InputString; }
106      set
107      {
108        if (value != m_InputString)
109        {
110          try
111          {
112            if (!string.IsNullOrEmpty(value))
113            {
114              this.m_InputString = value;
115              m_Value = new GmpBigInteger(m_InputString.Trim());
116              FirePropertyChangeEvent("InputString");
117            }
118            else 
119            {
120              throw new Exception();
121            }
122
123          }
124          catch 
125          {
126            FireOnGuiLogNotificationOccuredEventError("Damn");
127          }
128        }
129      }
130    }
131
132    private bool m_Output;
133    // [QuickWatch(QuickWatchFormat.Text, DisplayLevel.Beginner, null)]
134    [PropertyInfo(Direction.OutputData, "Boolean output", "True if input is a prime number, otherwise false", "", false, false, DisplayLevel.Beginner, QuickWatchFormat.Text, null)]
135    public bool Output
136    {
137      get { return this.m_Output; }
138      set
139      {
140        m_Output = value;
141        FirePropertyChangeEvent("Output");
142      }
143    }
144    #endregion
145  }
146}
Note: See TracBrowser for help on using the repository browser.