コード例 #1
0
ファイル: Server.cs プロジェクト: a38197/dotnet-remoting
 private void checkRingData(IServerExtended server)
 {
     foreach (var ks in knownServers)
     {
         if (server.RingIndex == ks.Value.RingIndex)
         {
             throw new ArgumentException($"RingIndex {server.RingIndex} already exists!");
         }
     }
 }
コード例 #2
0
        private static void instantiateSingletonServer()
        {
            var    type    = RemotingConfiguration.GetRegisteredWellKnownServiceTypes()[0];
            var    channel = ChannelServices.RegisteredChannels[0];
            string uri     = String.Format("{0}://127.0.0.1:{1}/{2}",
                                           ConfigurationManager.AppSettings["Channel"],
                                           ConfigurationManager.AppSettings["Port"], type.ObjectUri);

            instance = (IServerExtended)Activator.GetObject(typeof(IServerExtended), uri);
            instance.SendMessage(String.Format("Singleton Created on port channel {0} and port {1}",
                                               ConfigurationManager.AppSettings["Channel"],
                                               ConfigurationManager.AppSettings["Port"]));
            instance.Start();
        }
コード例 #3
0
ファイル: Server.cs プロジェクト: a38197/dotnet-remoting
        public void AddZoneServer(IServerExtended server, PropagateToken token)
        {
            logger.Info("Adding zone server with index {0}", server.RingIndex);
            lock (knownServers)
            {
                checkRingData(server);
                if (!knownServers.ContainsKey(server.GetUID()))
                {
                    CachedServer cached = new CachedServer(server);
                    knownServers.Add(cached.UID, cached);
                }

                nextRingServer = getNextServerOnRing();
            }
            SendServerAction(token);
        }
コード例 #4
0
ファイル: Server.cs プロジェクト: a38197/dotnet-remoting
 public Server(ref IServerExtended singleton) : this()
 {
     singleton = this;
 }
コード例 #5
0
ファイル: Server.cs プロジェクト: a38197/dotnet-remoting
 public CachedServer(IServerExtended server)
 {
     proxy = server;
     uid   = server.GetUID();
     index = server.RingIndex;
 }
コード例 #6
0
ファイル: Server.cs プロジェクト: a38197/dotnet-remoting
 public void AddZoneServer(IServerExtended server)
 {
     AddZoneServer(server, new PropagateToken(PropagateAction.AddServer, server));
 }