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