public ProcessingPipeLine(XCollection <ProcessorInstance> config, ChannelInitializationParameter param) { _param = param; _log = param.Log; _processorConfig = config; _processorList = new List <ProcessorControler>(); }
public static bool MatchEntryCriteria(ChannelInitializationParameter param, MessagePackage msgPackage, MessageEntryConfig cfg) { if (msgPackage == null || msgPackage.OriginalMessage == null || msgPackage.OriginalMessage.Header == null || cfg == null || param == null) { return(false); } if (msgPackage.IsAccepted()) { param.Log.Write(LogType.Information, string.Format("The message package {0} has been accepted by other channel.", msgPackage.OriginalMessage.Header.ToString())); return(false); } bool res = false; switch (cfg.CheckingModel) { default: case MessageEntryCheckingModel.AcceptAnyUnacceptedMessage: { res = true; break; } case MessageEntryCheckingModel.AcceptUnacceptedMessageAccordingToMessageType: { res = cfg.EntryMessageType.EqualsTo(msgPackage.OriginalMessage.Header.Type); break; } case MessageEntryCheckingModel.AcceptUnacceptedMessageAccordingToEntryCriteria: { res = MatchEntryCriteria(param.Log, msgPackage.GetMessageXml(), cfg.EntryCriteria); break; } } if (res) { msgPackage.Accept(param.ChannelName); } return(res); }
public bool Initialize(ChannelInitializationParameter parameter) { if (parameter == null) { return(false); } _param = parameter; _config = XObjectManager.CreateObject <SubscribePublishChannelConfig>(parameter.ConfigXmlString); if (_config == null) { WriteLog(LogType.Error, "Deserialize configuration object failed."); return(false); } _pipeLine = new ProcessingPipeLine(_config.Processors, _param); return(_pipeLine.Initialize()); }
public bool Initialize(ChannelInitializationParameter parameter) { if (parameter == null) { return(false); } _param = parameter; _config = XObjectManager.CreateObject <RequestResponseChannelConfig>(parameter.ConfigXmlString); if (_config == null) { WriteLog(LogType.Error, "Deserialize configuration object failed."); return(false); } _pipeLineReq = new ProcessingPipeLine(_config.RequestMessageProcessors, _param); _pipeLineRsp = new ProcessingPipeLine(_config.ResponseMessageProcessors, _param); return(_pipeLineReq.Initialize() && _pipeLineRsp.Initialize()); }