Ejemplo n.º 1
0
 public ProcessingPipeLine(XCollection <ProcessorInstance> config, ChannelInitializationParameter param)
 {
     _param           = param;
     _log             = param.Log;
     _processorConfig = config;
     _processorList   = new List <ProcessorControler>();
 }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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());
        }
Ejemplo n.º 4
0
        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());
        }