Ejemplo n.º 1
0
        public T CreateFromMessage <T>(byte[] bytes, IPEndPoint refEp,
                                       Conversation.ActionHandler preAction, Conversation.ActionHandler postAction,
                                       Conversation.ActionHandler failAction) where T : Conversation, new()
        {
            bool              initiator = false;
            MessageId         ConvId    = Message.Decode <Message>(bytes).ConvId;
            ConversationQueue queue     = ConversationDictionary.Instance.CreateQueue(ConvId);

            queue.Enqueue(bytes);

            T conversation = new T()
            {
                InitiatorConv     = initiator,
                ConvId            = ConvId,
                Timeout           = DefaultTimeout,
                MaxRetries        = DefaultMaxRetries,
                Done              = false,
                EndIP             = refEp,
                MyQueue           = queue,
                PreExecuteAction  = preAction,
                PostExecuteAction = postAction,
                FailureAction     = failAction
            };


            return(conversation);
        }
Ejemplo n.º 2
0
        public T CreateFromConversationType <T>(IPEndPoint receiver,
                                                Conversation.ActionHandler preAction, Conversation.ActionHandler postAction,
                                                Conversation.ActionHandler failAction) where T : Conversation, new()
        {
            bool              initiator = true;
            MessageId         ConvId    = MessageId.Create();
            ConversationQueue queue     = ConversationDictionary.Instance.CreateQueue(ConvId);

            T conversation = new T()
            {
                ConvId            = ConvId,
                Timeout           = DefaultTimeout,
                MaxRetries        = DefaultMaxRetries,
                Done              = false,
                InitiatorConv     = initiator,
                EndIP             = receiver,
                MyQueue           = queue,
                PreExecuteAction  = preAction,
                PostExecuteAction = postAction,
                FailureAction     = failAction
            };

            return(conversation);
        }