示例#1
0
 private void DoAddHandler <T>(RdContext <T> context, ISingleContextHandler <T> handler)
 {
     if (myHandlersMap.TryAdd(context, handler))
     {
         context.RegisterOn(SerializationContext.Serializers);
         lock (myOrderingLock)
             myHandlerOrder.Add(handler);
     }
 }
示例#2
0
 private void BindHandler(Lifetime lifetime, string key, ISingleContextHandler handler)
 {
     if (handler is RdBindableBase bindableHandler)
     {
         bindableHandler.RdId = RdId.Mix(key);
         Proto.Scheduler.InvokeOrQueue(lifetime, () =>
         {
             using (CreateSendWithoutContextsCookie())
                 bindableHandler.Bind(lifetime, this, key);
         });
     }
 }
示例#3
0
 private void BindAndSendHandler(Lifetime lifetime, ISingleContextHandler handler)
 {
     BindHandler(lifetime, handler.ContextBase.Key, handler);
     SendContextToRemote(handler.ContextBase);
 }