compcode

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
compcode [2011/06/06 10:48]
Stéphane Lavirotte [Source Code]
— (current)
Line 1: Line 1:
-====== Sample of a Bean ====== 
  
-===== Source Code ===== 
- 
-Here is a sample code of a component in C# (save this to a file called Your_CSharpBean_Name.cs) : 
- 
-<code csharp> 
-using System; 
-using System.Threading;​ // For the thread demo purposes 
-using WComp.Beans;​ 
- 
-namespace WComp.Beans 
-{ 
- /// <​summary>​ 
- /// This is a sample bean, using a thread, which has an integer evented property and a method ​ 
-        ///     to start the thread. 
- ///  
- /// Notes: this bean uses the IThreadCreator interface providing a cleanup method named `Stop()'​. 
- /// Several classes can be defined or used by a Bean, but only the class with the 
- /// [Bean] attribute will be available in WComp. Its ports will be all public methods, 
- ///     ​events and properties definied in that class. 
- /// </​summary>​ 
- [Bean(Category="​MyCategory"​)] 
- public class BeanThread1 : IThreadCreator { 
- private Thread t;   // Private attributes of the class 
- private volatile bool run = false; 
- private int sleepVal = 1000; 
- private volatile int eventValue; 
-  
- public BeanThread1() { 
- // Put here your init instructions 
- eventValue = 10; 
- } 
-  
- public void Start() {  // method starting the thread 
- if (!run) { 
- run = true; 
- t = new Thread(new ThreadStart(ThreadLoopMethod));​ 
- t.Start();​ 
- 
- } 
- public void Stop() {   // IThreadCreator defines the Stop() method 
- run = false; 
- 
-  
- // Loop sample 
- public void ThreadLoopMethod() { 
- while(run) { 
- Thread.Sleep(sleepVal);​ 
- // Check if the output is connected 
- if(Output_Sample != null) 
- // call the connected methods sequentially 
- Output_Sample(eventValue);​ 
- // and so on... 
- } 
- } 
-  
- // --- Start: Input port sample --- 
- // an input port is a public method (like below) 
- public void Input_Sample(int intParam) { 
- eventValue = intParam; 
- // No return value is expected in WComp: 
- // results are given using events 
- } 
- // --- End: Input port sample --- 
-  
- // --- Start: Output port sample --- 
- public delegate void Output_Sample_Signature(int val); 
- // The delegate defines the signature of the output method 
- public event Output_Sample_Signature Output_Sample;​ 
- // The output port is the event, named here Output_Sample 
- // --- End: Output port sample --- 
- } 
-} 
- 
-</​code>​ 
- 
-===== Compilation ===== 
- 
-Here is a sample of the command line compilation:​ 
-<​code>​ 
-csc.exe /​target:​library /​r:​Beans.dll Sample_Component.cs 
-</​code>​ 
- 
-You will find Beans.dll in the SharpWComp distrib. 
  • compcode.1307350082.txt.gz
  • Last modified: 2011/06/06 10:48
  • by Stéphane Lavirotte