Exemple #1
0
 private RemoteServiceSubscriber GetRemoteServiceSubscriber(string service)
 {
     bool create = false;
     RemoteService remoteservice = GetRemoteService(service, out create);
     RemoteServiceSubscriber subscriber = GetRemoteServiceSubscriber(remoteservice);
     if (subscriber == null)
         throw new SRException("{0} service subscriber notfound!", service);
     return subscriber;
 }
Exemple #2
0
 public void PublishToServicee(string service, object data)
 {
     RemoteServiceSubscriber subscriber = GetRemoteServiceSubscriber(service);
     Message msg = new Message();
     msg.Data = data;
     msg.Consumers = subscriber.Name;
     msg.Pulisher = Name;
     Node.Publish(msg);
 }
Exemple #3
0
        public object PublishToService(string service, object data)
        {
            RemoteServiceSubscriber subscriber = GetRemoteServiceSubscriber(service);

            Message msg = new Message();
            msg.Track("publish to server start!");
            msg.Data = data;
            msg.Consumers = subscriber.Name;
            msg.Mode = ReceiveMode.Eq;
            msg.Pulisher = Name;
            msg.Subscriber = this;
            object result = Node.PublishSync(msg);
            msg.EndTrack("publish to service completed!", Node);
            return result;
        }
        public void Register(string name, INode node)
        {
            RemoteServiceSubscriber item = null;

            if (mServiceSubscribers.TryGetValue(name, out item))
            {
                item.ActiveTime = node.GetRuntime();
                //node.Loger.Process(LogType.DEBUG, "update service {0} ActiveTime {1}", name, item.ActiveTime);
            }
            else
            {
                item            = new RemoteServiceSubscriber();
                item.Name       = name;
                item.ActiveTime = node.GetRuntime();
                mServiceSubscribers[item.Name] = item;
                mVersion++;
                //node.Loger.Process(LogType.DEBUG, "regiteed remote service {0} ActiveTime {1}", name, item.ActiveTime);
            }
        }
        public RemoteServiceSubscriber GetServiceSubscriber(INode node)
        {
            long runtime = node.GetRuntime();
            RemoteServiceSubscriber result = null;

            mIndex++;
            int count = 0;

            RemoteServiceSubscriber[] items = GetOnlines();
            while (count < items.Length)
            {
                RemoteServiceSubscriber item = items[(int)(mIndex % items.Length)];
                if (item.Available(runtime))
                {
                    result = item;
                    break;
                }
                count++;
                mIndex++;
            }
            return(result);
        }
 public OnlineSegment()
 {
     Version = -1;
     Values  = new RemoteServiceSubscriber[0];
 }