From 5c9a8e02544404ff2d9479328e024fd8b4e68ad8 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 10:05:52 +0000 Subject: Utilisateur : Fcolin Date : 11/11/03 Heure : 20:53 Créé Commentaire: (vss 1) --- CSharp/Ivy/IvyProbe/IvyProbe.cs | 241 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 241 insertions(+) create mode 100644 CSharp/Ivy/IvyProbe/IvyProbe.cs diff --git a/CSharp/Ivy/IvyProbe/IvyProbe.cs b/CSharp/Ivy/IvyProbe/IvyProbe.cs new file mode 100644 index 0000000..f302062 --- /dev/null +++ b/CSharp/Ivy/IvyProbe/IvyProbe.cs @@ -0,0 +1,241 @@ +namespace IvyTest +{ + using System; + using System.Windows.Forms; + using IvyBus; + + class IvyTest : System.Windows.Forms.Form + { + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox tbRegexp; + private System.Windows.Forms.TextBox tbMsg; + private System.Windows.Forms.Button btBind; + private System.Windows.Forms.Button btSend; + private System.Windows.Forms.TextBox ta; + + /// + /// Variable nécessaire au concepteur. + /// + private System.ComponentModel.Container components = null; + + internal Ivy bus; + internal String regexp; + internal int regexp_id; + public IvyTest() + { + // + // Requis pour la prise en charge du Concepteur Windows Forms + // + InitializeComponent(); + + regexp = ""; + bus = new Ivy("C# TESTBUS", "Testbus ridi"); + bus.Debug = true; + bus.clientConnected += new Ivy.ClientConnectedHandler( connect ); + bus.clientDisconnected += new Ivy.ClientDisconnectedHandler( disconnect ); + bus.dieReceived += new Ivy.DieHandler( die ); + bus.directMessageReceived += new Ivy.DirectMessageHandler( directMessage ); + bus.start(null); + regexp_id = -1; + } + + /// + /// Nettoyage des ressources utilisées. + /// + protected override void Dispose( bool disposing ) + { + stop(); + bus = null; + if( disposing ) + { + if(components != null) + { + components.Dispose(); + } + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + /// + /// Méthode requise pour la prise en charge du concepteur - ne modifiez pas + /// le contenu de cette méthode avec l'éditeur de code. + /// + private void InitializeComponent() + { + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.tbRegexp = new System.Windows.Forms.TextBox(); + this.tbMsg = new System.Windows.Forms.TextBox(); + this.ta = new System.Windows.Forms.TextBox(); + this.btBind = new System.Windows.Forms.Button(); + this.btSend = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // label1 + // + this.label1.Location = new System.Drawing.Point(8, 8); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(40, 16); + this.label1.TabIndex = 0; + this.label1.Text = "Regexp:"; + // + // label2 + // + this.label2.Location = new System.Drawing.Point(8, 248); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(56, 16); + this.label2.TabIndex = 1; + this.label2.Text = "Msg:"; + // + // tbRegexp + // + this.tbRegexp.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbRegexp.Location = new System.Drawing.Point(64, 0); + this.tbRegexp.Name = "tbRegexp"; + this.tbRegexp.Size = new System.Drawing.Size(224, 20); + this.tbRegexp.TabIndex = 2; + this.tbRegexp.Text = "regexp"; + // + // tbMsg + // + this.tbMsg.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbMsg.Location = new System.Drawing.Point(72, 240); + this.tbMsg.Name = "tbMsg"; + this.tbMsg.Size = new System.Drawing.Size(216, 20); + this.tbMsg.TabIndex = 3; + this.tbMsg.Text = "msg"; + this.tbMsg.TextChanged += new System.EventHandler(this.tbMsg_TextChanged); + // + // ta + // + this.ta.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.ta.Location = new System.Drawing.Point(0, 32); + this.ta.Multiline = true; + this.ta.Name = "ta"; + this.ta.Size = new System.Drawing.Size(368, 200); + this.ta.TabIndex = 4; + this.ta.Text = ""; + // + // btBind + // + this.btBind.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btBind.Location = new System.Drawing.Point(296, 0); + this.btBind.Name = "btBind"; + this.btBind.Size = new System.Drawing.Size(64, 24); + this.btBind.TabIndex = 5; + this.btBind.Text = "bind"; + this.btBind.Click += new System.EventHandler(this.RegexpCB); + // + // btSend + // + this.btSend.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btSend.Location = new System.Drawing.Point(296, 240); + this.btSend.Name = "btSend"; + this.btSend.Size = new System.Drawing.Size(64, 24); + this.btSend.TabIndex = 6; + this.btSend.Text = "Send"; + this.btSend.Click += new System.EventHandler(this.SendCB); + // + // IvyTest + // + this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); + this.ClientSize = new System.Drawing.Size(368, 266); + this.Controls.Add(this.btSend); + this.Controls.Add(this.btBind); + this.Controls.Add(this.ta); + this.Controls.Add(this.tbMsg); + this.Controls.Add(this.tbRegexp); + this.Controls.Add(this.label2); + this.Controls.Add(this.label1); + this.Name = "IvyTest"; + this.Text = "IvyTest"; + this.ResumeLayout(false); + + } + #endregion + public void stop() + { + bus.clientConnected -= new Ivy.ClientConnectedHandler( connect ); + bus.clientDisconnected -= new Ivy.ClientDisconnectedHandler( disconnect ); + bus.dieReceived -= new Ivy.DieHandler( die ); + bus.directMessageReceived -= new Ivy.DirectMessageHandler( directMessage ); + bus.stop(); + } + private void connect(IvyClient client) + { + append(client.ApplicationName + " connected "); + } + private void disconnect(IvyClient client) + { + append(client.ApplicationName + " disconnected "); + } + private bool die(IvyClient client, int id) + { + append("receive die from "+client.ApplicationName ); + // return true terminate the application + return false; + } + private void directMessage(IvyClient client, int id, System.String arg) + { + append(client.ApplicationName + " direct Message " + id + arg); + } + + public void RegexpCB(System.Object event_sender, System.EventArgs e) + { + // enlever l'ancienne regex + if ( regexp_id >=0 ) + bus.unBindMsg(regexp_id); + // ajoute la nouvelle regex + regexp = tbRegexp.Text; + regexp.Trim(); + regexp_id = bus.bindMsg(regexp, new Ivy.MessageHandler(receive)); + tbRegexp.Text = ""; + append( "bind("+regexp_id+") ->"+regexp); + } + private void receive(IvyClient client, String[] args) + { + String out_Renamed = "client " + client.ApplicationName + " envoie: [ "; + for (int i = 0; i < args.Length; i++) + out_Renamed = out_Renamed + args[i] + ((i < args.Length - 1)?" , ":""); + out_Renamed = out_Renamed + " ]"; + append(out_Renamed); + } + private void append(System.String s) + { + // je mettrais bien la date, aussi. + ta.AppendText(s+"\r\n"); + } + + public void SendCB(System.Object event_sender, System.EventArgs e) + { + int count; + System.String tosend = tbMsg.Text; + tbMsg.Text = ""; + count = bus.sendMsg(tosend); + append("Sending '" + tosend + "' count " + count); + + } + + [STAThread] + public static void Main(System.String[] args) + { + IvyTest tb = new IvyTest(); + Application.Run(tb); + + } + + private void tbMsg_TextChanged(object sender, System.EventArgs e) + { + btSend.Enabled = (tbMsg.Text != ""); + } + + } + + // EOF +} \ No newline at end of file -- cgit v1.1