Example #1
0
        public void StartReceiveMessage(ReceivedMessageHandler callback)
        {
            var ctx = BatchContextSafeHandle.Create();

            completionRegistry.RegisterBatchCompletion(ctx, (success, context) => callback(success, context.GetReceivedMessage()));
            grpcsharp_call_recv_message(this, ctx).CheckOk();
        }
Example #2
0
 public static bool UnregisterHandler(string SenderFilter, ReceivedMessageHandler Handler)
 {
     if (!SessionHandlers.ContainsKey(SenderFilter))
     {
         return(false);
     }
     return(SessionHandlers[SenderFilter].Remove(Handler));
 }
Example #3
0
        /// <summary>
        /// Subscribes a session-level handler to the message received event from given sender.
        /// </summary>
        /// <param name="SenderFilter">A DataMessage.SenderName on which the handler will be invoked.</param>
        public static bool RegisterHandler(string SenderFilter, ReceivedMessageHandler Handler)
        {
            if (!SessionHandlers.ContainsKey(SenderFilter))
            {
                SessionHandlers.Add(SenderFilter, new HashSet <ReceivedMessageHandler>());
            }
            var Handlers = SessionHandlers[SenderFilter];

            return(Handlers.Add(Handler));
        }
        public static bool UnregisterHandler(IMyEntity Entity, string SenderFilter, ReceivedMessageHandler Handler)
        {
            long EntityID = Entity.EntityId;

            if (!EntityHandlersCollection.ContainsKey(EntityID))
            {
                return(false);
            }
            if (!EntityHandlersCollection[EntityID].ContainsKey(SenderFilter))
            {
                return(false);
            }
            return(EntityHandlersCollection[EntityID][SenderFilter].Remove(Handler));
        }
        /// <summary>
        /// Subscribes an entity-level handler to the message received event from given sender about the given entity.
        /// <para />
        /// Useful for entity gamelogic components. Absolutely not useful for entity components.
        /// </summary>
        /// <param name="SenderName">A DataMessage.SenderName on which the handler will be invoked.</param>
        public static bool RegisterHandler(IMyEntity Entity, string SenderName, ReceivedMessageHandler Handler)
        {
            long EntityID = Entity.EntityId;

            if (!EntityHandlersCollection.ContainsKey(EntityID))
            {
                EntityHandlersCollection.Add(EntityID, new Dictionary <string, HashSet <ReceivedMessageHandler> >());
            }
            var EntityHandlers = EntityHandlersCollection[EntityID];

            if (!EntityHandlers.ContainsKey(SenderName))
            {
                EntityHandlers.Add(SenderName, new HashSet <ReceivedMessageHandler>());
            }
            return(EntityHandlers[SenderName].Add(Handler));
        }
 public void StartReceiveMessage(ReceivedMessageHandler callback)
 {
     using (completionQueue.NewScope())
     {
         var ctx = BatchContextSafeHandle.Create();
         completionQueue.CompletionRegistry.RegisterBatchCompletion(ctx, (success, context) => callback(success, context.GetReceivedMessage()));
         Native.grpcsharp_call_recv_message(this, ctx).CheckOk();
     }
 }
Example #7
0
 public void StartReceiveMessage(ReceivedMessageHandler callback)
 {
     ReceivedMessageHandler = callback;
 }
Example #8
0
 public void StartReceiveMessage(ReceivedMessageHandler callback)
 {
     ReceivedMessageHandler = callback;
 }
Example #9
0
 public static bool UnregisterHandler(ReceivedMessageHandler Handler)
 {
     return(GeneralHandlers.Remove(Handler));
 }
Example #10
0
 /// <summary>
 /// Subscribes a monitor-level handler to ALL received messages.
 /// </summary>
 public static bool RegisterHandler(ReceivedMessageHandler Handler)
 {
     return(GeneralHandlers.Add(Handler));
 }