private void ObjMainReader_Rx(object sender, RoutingFrame e) { if (e.FrameType == RoutingFrameType.Control) { var objConsumerRouter = new ConsumerRouter(QueueCache.GetSenderQueue(QueueType.Consumer, e.SourceID, false)); ControlFactory.Processor.Process(objConsumerRouter, e); } else { var objPublisherRouter = new PublisherRouter( QueueCache.GetSenderQueue(QueueType.Consumer, e.SourceID, false), ReaderQueue, QueueCache.GetSenderQueue(QueueType.Publisher, e.DestinationID, false) ); MessagingFactory.Processor.Process(objPublisherRouter, e.Data); } }
private bool Handle(string pType, PublisherRouter pRouter, IRequestMessage pMessage) { try { var objHandler = MessagingFactory.Provider.GetSubscriptionHandler(pMessage); var blnResult = (bool)objHandler.GetType().GetMethod(pType).Invoke(objHandler, new object[] { pRouter, pMessage }); var objResponse = new ACKResponse(pMessage, new ResponseStatus((blnResult) ? ResponseState.Success : ResponseState.Error)); var arrBytes = MessagingFactory.Converter.GetByteArray(objResponse); var objRoutingFrame = new RoutingFrame( RoutingFrameType.Messaging, objResponse.Type, objResponse.ID, pRouter.SourceID, pRouter.DestinationID, arrBytes ); Log.Debug($"Sending response for request {pMessage.ID} to {pRouter.ConsumerQueue.QueueName}"); pRouter.ConsumerQueue.Transmit(objRoutingFrame); return(blnResult); } catch (Exception ex) { Log.Error(ex); } return(false); }
public Executor(PublisherRouter pRouter) { Router = pRouter; }