From 3593a483d5566779f1d56e037615685cdc77c0a0 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:05:47 +0000 Subject: modification structure svn --- IvyToDel/IvyPPC/IvyBinding.cs | 118 ------------------------------------------ 1 file changed, 118 deletions(-) delete mode 100644 IvyToDel/IvyPPC/IvyBinding.cs (limited to 'IvyToDel/IvyPPC/IvyBinding.cs') diff --git a/IvyToDel/IvyPPC/IvyBinding.cs b/IvyToDel/IvyPPC/IvyBinding.cs deleted file mode 100644 index 624b401..0000000 --- a/IvyToDel/IvyPPC/IvyBinding.cs +++ /dev/null @@ -1,118 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Specialized; -using System.Text.RegularExpressions; -using System.Diagnostics; - -namespace IvyBus -{ - /* This is the Client side of binding storage */ - /* association of a generated Key and the expression and a compiled Expression matching */ - /* this is RECEIVED from other client */ - - /// - /// Description résumée de IvyBinding. - /// - internal abstract class IvyBindingBase - { - - private ushort key; - - internal ushort Key - { - get { return key; } - } - protected string expression; - - internal string Expression - { - get { return expression; } - } - - internal IvyBindingBase(ushort id, string exp) - { - key = id; - expression = exp; - } - internal abstract string[] Match(string message); - - } - internal class IvyBindingRegexp : IvyBindingBase - { - internal Regex regexp; - - public IvyBindingRegexp(ushort id, string exp) - : base(id, exp) - { - regexp = new Regex(expression, /* RegexOptions.Compiled | */RegexOptions.IgnoreCase | RegexOptions.CultureInvariant); - //regexp.Match("###"); // for really compile the expression really slow on 3000 expression - } - internal override string[] Match(string message) - { - string[] args = null; - // use of regexp to extract info - Match result = regexp.Match(message); - if (result.Success) - { - // Start at 1 because group 0 represent entire matching - args = new string[result.Groups.Count-1]; - for (int sub = 1; sub < result.Groups.Count; sub++) - { - args[sub-1] = result.Groups[sub].Value; - } - } - return args; - } - } - internal class IvyBindingSimple : IvyBindingBase - { - internal string msgname; // message name - internal string[] msgargs; // list of message args names - static string msgtag; // send message name - static StringDictionary args_values; // send message args[name]=value - - internal IvyBindingSimple(ushort id, string exp) - : base(id, exp) - { - string[] expr = expression.Split( ' ' ); - msgname = expr[0]; - msgargs = new string[ expr.Length -1 ]; - for ( int i = 1; i < expr.Length; i++ ) - msgargs[i-1] = expr[i]; - } - static internal void Prepare(string message) - { - string[] msg = message.Split(' '); - msgtag = msg[0]; - args_values = new StringDictionary(); - for( int sub=1 ; sub < msg.Length; sub++ ) - { - string[] arg = msg[sub].Split('='); // champ = valeur - if ( arg.Length == 2 ) - args_values[arg[0]] = arg[1]; - else - { - Ivy.traceError("IvyBindingSimple" , "abnormally Formed message expected 'msg champ=valeur champ=valeur....' :" + message); - } - } - - } - internal override string[] Match(string message) - { - // the message is already parsed by prepare - // - string[] args = null; - - if (msgtag == msgname) - { - args = new string[msgargs.Length]; - for( int sub= 0; sub < msgargs.Length; sub++) - { - args[sub] = args_values[msgargs[sub]]; - } - } - return args; - } - - } -} -- cgit v1.1