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; }
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); }
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]; }