Beispiel #1
0
        //originally: only run when needed to start server (the first time)
        // - didn't work well; now every server has it's own ChanStore (WCF reasons, mainly)
        //Unit so it can be used in Lazy
        static Unit InitServer(Settings settings, ChanStore store, Connector conn)
        {
            //simple default config for now
              var dfltCfg = NetChanConfig.MakeDefault<Message>();

              var bcFailT = store.CreateNetChan(settings.ChanBroadcastName, dfltCfg, ChanDistributionType.Broadcast);
              var bcUri = new Uri("chan:" + settings.ChanBroadcastName);
              var bcr = store.GetReceiver<Message>(bcUri);
              var bcs = store.GetSender<Message>(bcUri);
              var bcPipeT = bcr.Pipe(bcs); //connect server side of pipe: return back to everyone
              bcFailT.PipeEx(conn, "server: bc chan");
              bcPipeT.PipeEx(conn, "server: bc pipe");
              bcr.AfterClosed().PipeEx(conn, "server: bc receiver"); //I don't think these can ever fail...
              bcs.AfterClosed().PipeEx(conn, "server: bc sender");

              return null;
        }