public FFMsgHandler(_FFMsgHandlerFactory msgHandlerFactory,
                     FFTgtHandlerDeviceTypes deviceType,
                     IFFMsgTransmitter msgTransmitter)
 {
     _msgHandlerFactory       = msgHandlerFactory;
     _deviceType              = deviceType;
     _msgTransmitter          = msgTransmitter;
     _requestResponseMappings = new RequestResponseMapItems();
     _targetHandlers          = new StringDictionary <_HandlerInfo>();
     this.CreateTargetHandlers();
 }
 public FFMsgHandler(_FFMsgHandlerFactory msgHandlerFactory,
     FFTgtHandlerDeviceTypes deviceType,
     IFFMsgTransmitter msgTransmitter)
 {
     _msgHandlerFactory = msgHandlerFactory;
     _deviceType = deviceType;
     _msgTransmitter = msgTransmitter;
     _requestResponseMappings = new RequestResponseMapItems();
     _targetHandlers = new StringDictionary<_HandlerInfo>();
     this.CreateTargetHandlers();
 }
Esempio n. 3
0
        public bool Execute(IFreeformEntity_Msg request)
        {
            using (ILogMethod method = Log.LogMethod(DYN_MODULE_NAME, "ProcessMessage"))
            {
                bool result = default(bool);

                try
                {
                    if (request == null ||
                        request.IpAddress.IsEmpty())
                    {
                        return(false);
                    }

                    string key = request.IpAddress;
                    _FFMsgHandlerFactory factory = GetFactory(request);

                    // immediate execution or delayed execution
                    if (factory.IsExecuting)
                    {
                        _executorDelayLoading.QueueWorkerItem(request);
                        result = true;
                    }
                    else
                    {
                        result = factory.Execute(request);
                    }
                }
                catch (Exception ex)
                {
                    method.Exception(ex);
                }

                return(result);
            }
        }