From 3dbe0f9445d6fdfa405786bc99f9d5c8fad3626f Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:04:30 +0000 Subject: modification structure svn --- IvyPerf/App.ico | Bin 0 -> 1078 bytes IvyPerf/AssemblyInfo.cs | 58 ++++++++++++++++ IvyPerf/IvyPerf.cs | 74 +++++++++++++++++++++ IvyPerf/IvyPerf.csproj | 140 +++++++++++++++++++++++++++++++++++++++ IvyPerf/IvyPerf.csproj.vspscc | 10 +++ IvyPerf/IvyPerf_TemporaryKey.pfx | Bin 0 -> 1676 bytes 6 files changed, 282 insertions(+) create mode 100644 IvyPerf/App.ico create mode 100644 IvyPerf/AssemblyInfo.cs create mode 100644 IvyPerf/IvyPerf.cs create mode 100644 IvyPerf/IvyPerf.csproj create mode 100644 IvyPerf/IvyPerf.csproj.vspscc create mode 100644 IvyPerf/IvyPerf_TemporaryKey.pfx (limited to 'IvyPerf') diff --git a/IvyPerf/App.ico b/IvyPerf/App.ico new file mode 100644 index 0000000..3a5525f Binary files /dev/null and b/IvyPerf/App.ico differ diff --git a/IvyPerf/AssemblyInfo.cs b/IvyPerf/AssemblyInfo.cs new file mode 100644 index 0000000..65a2ee8 --- /dev/null +++ b/IvyPerf/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// Les informations générales relatives à un assembly dépendent de +// l'ensemble d'attributs suivant. Pour modifier les informations +// associées à un assembly, changez les valeurs de ces attributs. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Les informations de version pour un assembly se composent des quatre valeurs suivantes : +// +// Version principale +// Version secondaire +// Numéro de build +// Révision +// +// Vous pouvez spécifier toutes les valeurs ou indiquer des numéros de révision et de build par défaut +// en utilisant '*', comme ci-dessous : + +[assembly: AssemblyVersion("2.0.*")] + +// +// Pour signer votre assembly, vous devez spécifier la clé à utiliser. Consultez +// la documentation Microsoft .NET Framework pour plus d'informations sur la signature d'un assembly. +// +// Utilisez les attributs ci-dessous pour contrôler la clé utilisée lors de la signature. +// +// Remarques : +// (*) Si aucune clé n'est spécifiée, l'assembly n'est pas signé. +// (*) KeyName fait référence à une clé installée dans le fournisseur de +// services cryptographiques (CSP) de votre ordinateur. KeyFile fait référence à un fichier qui contient +// une clé. +// (*) Si les valeurs de KeyFile et de KeyName sont spécifiées, le +// traitement suivant se produit : +// (1) Si KeyName se trouve dans le CSP, la clé est utilisée. +// (2) Si KeyName n'existe pas mais que KeyFile existe, la clé +// de KeyFile est installée dans le CSP et utilisée. +// (*) Pour créer KeyFile, vous pouvez utiliser l'utilitaire sn.exe (Strong Name, Nom fort). +// Lors de la spécification de KeyFile, son emplacement doit être +// relatif au répertoire de sortie du projet qui est +// %Project Directory%\obj\. Par exemple, si votre KeyFile se trouve +// dans le répertoire du projet, vous devez spécifier l'attribut +// AssemblyKeyFile sous la forme [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) DelaySign (signature différée) est une option avancée. Pour plus d'informations, consultez la +// documentation Microsoft .NET Framework. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/IvyPerf/IvyPerf.cs b/IvyPerf/IvyPerf.cs new file mode 100644 index 0000000..9d37883 --- /dev/null +++ b/IvyPerf/IvyPerf.cs @@ -0,0 +1,74 @@ +using System; +using IvyBus; +using System.Threading; +using System.Globalization; +using System.Collections.Specialized; + +namespace IvyPerf +{ + /// + /// Description résumée de IvyPerf. + /// mesure des perfo de round trip entre deux applis + /// + class IvyPerf + { + static Ivy bus; + static double origin = 0; + + static double currentTime() // en ms + { + double time; + time = (double)(DateTime.Now.Ticks) / (double)(TimeSpan.TicksPerMillisecond); + //time = Environment.TickCount; + return time; + } + [IvyBinding("^ping ts=(.*)")] + static void Reply(object sender, IvyMessageEventArgs args) + { + bus.SendMsg("pong ts={0} tr={1}", args[0], currentTime() - origin ); + } + [IvyBinding("^pong ts=(.*) tr=(.*)")] + static void Pong(object sender, IvyMessageEventArgs args) + { + double current = currentTime() - origin; + double ts = double.Parse(args[0], bus.Culture ); + double tr = double.Parse(args[1], bus.Culture ); + double roundtrip1 = tr - ts; + double roundtrip2 = current - tr; + double roundtrip3 = current - ts; + Console.WriteLine("round trip {0} {1} {2}", roundtrip1, roundtrip2, roundtrip3); + } + /// + /// Point d'entrée principal de l'application. + /// + [STAThread] + static void Main(string[] args) + { + int timeout = 1000; + if (args.Length > 0) + timeout = int.Parse(args[0]); + bus = new Ivy("IvyPerf", "IvyPref ready"); + bus.SentMessageFilter.Add("ping"); + bus.SentMessageFilter.Add("pong"); + bus.SentMessageFilter.Add("IvyPref"); + bus.BindingFilter += new EventHandler(bus_BindingFilter); + //TODO how to autobind + //bus.BindAttibute(typeof(IvyPerf)); + //TODO auto generation of testtarget ?? how to + //bus.BindMsg("test", new EventHandler(testtarget)); + bus.Start(null); + origin = currentTime(); + while( true ) + { + Thread.Sleep( timeout ); + int count = bus.SendMsg("ping ts={0}", currentTime() - origin ); + if ( count == 0 ) Console.Write( "." ); + } + } + + static void bus_BindingFilter(object sender, IvyEventArgs e) + { + Console.WriteLine( "The app {0} regexp {1} was Filtred.", e.Client.ApplicationName,e.Argument); + } + } +} diff --git a/IvyPerf/IvyPerf.csproj b/IvyPerf/IvyPerf.csproj new file mode 100644 index 0000000..c3742e6 --- /dev/null +++ b/IvyPerf/IvyPerf.csproj @@ -0,0 +1,140 @@ + + + Local + 8.0.50727 + 2.0 + {839C9A55-7EFD-4326-95C3-2960DF390FF2} + Debug + AnyCPU + App.ico + + + IvyPerf + + + JScript + Grid + IE50 + false + Exe + IvyPerf + OnBuildSuccess + + + + + + + SAK + SAK + SAK + SAK + 51C861139B0DCA6D2FAD5BDB1D5280AAE1E59696 + IvyPerf_TemporaryKey.pfx + true + true + \\samba\fcolin\public_html\ClickOnce\IvyPerf\ + true + Web + true + Foreground + 7 + Days + false + false + true + http://www.tls.cena.fr/~fcolin/ClickOnce/IvyPerf/ + 1.0.0.%2a + true + true + + + bin\Debug\ + false + 285212672 + false + + + DEBUG;TRACE + + + true + 4096 + false + + + false + false + false + false + 4 + full + prompt + + + bin\Release\ + false + 285212672 + false + + + TRACE + + + false + 4096 + false + + + true + false + false + false + 4 + none + prompt + + + + System + + + System.Data + + + System.XML + + + + + + Code + + + Code + + + + + {F2F03CF7-0087-4EDB-AD15-80C9E8DA2617} + Ivy + + + + + + + + False + .NET Framework 2.0 + true + + + + + + + + + + \ No newline at end of file diff --git a/IvyPerf/IvyPerf.csproj.vspscc b/IvyPerf/IvyPerf.csproj.vspscc new file mode 100644 index 0000000..5ee9e23 --- /dev/null +++ b/IvyPerf/IvyPerf.csproj.vspscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "relative:IvyPerf" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER" +} diff --git a/IvyPerf/IvyPerf_TemporaryKey.pfx b/IvyPerf/IvyPerf_TemporaryKey.pfx new file mode 100644 index 0000000..db02b60 Binary files /dev/null and b/IvyPerf/IvyPerf_TemporaryKey.pfx differ -- cgit v1.1