예제 #1
0
파일: Operators.cs 프로젝트: sandrist/psi
        /// <summary>
        /// Create a rendezvous endpoint from a <see cref="RemoteExporter"/>.
        /// </summary>
        /// <param name="exporter"><see cref="RemoteExporter"/> from which to create endpoint.</param>
        /// <param name="host">Host name with which to create endpoint.</param>
        /// <returns>Rendezvous endpoint.</returns>
        public static Rendezvous.Endpoint ToRendezvousEndpoint(this RemoteExporter exporter, string host)
        {
            // Each RemoteExporter is an endpoint emitting one or more streams.
            var endpoint = new Rendezvous.RemoteExporterEndpoint(host, exporter.Port, exporter.TransportKind);

            foreach (var m in exporter.Exporter.Metadata)
            {
                endpoint.AddStream(new Rendezvous.Stream(m.Name, m.TypeName));
            }

            return(endpoint);
        }
예제 #2
0
 // entry point for the server. The process can be terminated with process.StandardInput.WriteLine().
 private void GenerateData(TransportKind transportKind)
 {
     using (var p = Pipeline.Create())
     {
         using (var remote = new RemoteExporter(p, transportKind))
         {
             var exporter  = remote.Exporter;
             var generator = Generators.Range(p, 0, 100, TimeSpan.FromMilliseconds(1));
             generator.Write(ServerDataStream, exporter);
             p.RunAsync();
             Console.ReadLine();
         }
     }
 }