compcode

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
compcode [2007/06/13 07:38]
lavirotte
compcode [2011/06/06 10:48] (current)
Stéphane Lavirotte [Source Code]
Line 1: Line 1:
-====== Sample ​for for a Bean ======+====== Sample ​of a Bean ======
  
 ===== Source Code ===== ===== Source Code =====
  
-Here is the sample code of a component in c# (save this to a le called ​Sample_Component.cs) :+Here is sample code of a component in C# (save this to a file called ​Your_CSharpBean_Name.cs) :
  
 <code csharp> <code csharp>
-using WComp.Beans// It contains the definition of the attribute [Bean]+using System;
 using System.Threading;​ // For the thread demo purposes using System.Threading;​ // For the thread demo purposes
 +using WComp.Beans;​
  
-namespace ​Your_Namespace_Name ​{+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 --- 
 +
 +}
  
-    [Bean] 
-    public class Your_CSharpBean_Name { 
- 
-        public Your_CSharpBean_Name() { 
-            // Put here your init instructions 
-            // Example of a loop that call the output 
-            // every second. 
-            new Thread(new ThreadStart(ThreadLoopMethod)).Start();​ 
-        } 
- 
-         // Loop sample 
-         ​public void ThreadLoopMethod() { 
-             ​while(Thread.CurrentThread.IsAlive) { 
-                 ​Thread.Sleep(1000);​ 
-                 ​double result; 
-                 // Check if the output is connected 
-                 ​if(Output_Sample != null) 
-                     // call the connected methods sequentially 
-                     ​result = Output_Sample(123);​ 
-                // and so on... 
-             } 
-        } 
- 
-        // --- Start: Input port sample --- 
-        // an input port is a method (below) 
-        public int Input_Sample(string param_name) { 
-            string pn = param_name; // You may use the parameters 
-            return 0; // You may return anything 
-        } 
-        // --- End: Input port sample --- 
- 
-        // --- Start: Output port sample --- 
-        public delegate double Output_Sample_Signature(int param_name);​ 
-        // This is the signature of the output method 
-        public event Output_Sample_Signature Output_Sample;​ 
-        // The output port is the event (before) 
-        // --- End: Output port sample --- 
-    } 
-} 
 </​code>​ </​code>​
  
 ===== Compilation ===== ===== Compilation =====
  
-Wcomp distrib. ​Here is a sample of the command line compilation : +Here is a sample of the command line compilation:​ 
-<​code ​actionscript+<​code>​ 
-csc.exe /​target:​library /r:Bean.dll Sample_Component.cs+csc.exe /​target:​library /r:Beans.dll Sample_Component.cs
 </​code>​ </​code>​
 +
 +You will find Beans.dll in the SharpWComp distrib.
  • compcode.1181713115.txt.gz
  • Last modified: 2007/06/13 07:38
  • by lavirotte