/// <summary> /// Binds together the instances of communication objects and starts /// whatever process are necessary /// </summary> /// <param name="inQueue">The input queue wrapper</param> /// <param name="outQueue">The output queue wrapper</param> public void Initialize(FecsBecsInputWrapper inQueue, BecsFecsOutputWrapper outQueue) { AppSettingsReader appSettings = new AppSettingsReader(); _unitId = (string)appSettings.GetValue("UnitID", typeof(string)); Parameterization.SourceId = _unitId; _inAdapter = new InputQueueBecsAdapter(inQueue); _outAdapter = new OutputQueueBecsAdapter(outQueue); _channelMgr = new BecsChannelManager(_outAdapter, _inAdapter); _inAdapter.ChannelManager = _channelMgr; Parameterization.ChannelManager = _channelMgr; _mediaCtx = new BecsMediaContext(); Parameterization.MediaContext = _mediaCtx; _msgRouter = new SimpleMessageRouter(); Parameterization.MessageRouter = _msgRouter; Receiver.GetInstance().MessagesAvailable += new Receiver.MessagesAvailableHandler(_msgRouter.OnMessagesAvailable); _dispatcher = new BecsMsgDispatcher(); _msgRouter.MessageReceived += new MessageReceivedHandler(_dispatcher.OnMessageReceived); _msgRouter.ResponsesReceived += new ResponsesReceivedHandler(_dispatcher.OnResponsesReceived); _msgConfig = new CSMessageConfiguration(); _sender = new MessageSender(_msgConfig); RegisterMessageHandlers(); int period = (int)appSettings.GetValue("SendPeriod", typeof(int)); _sender.Start(period); }
/// <summary> /// Builds a new Session. A "Session" is just a collection of objects /// maintained in memory by the BECS for performance reasons. /// </summary> public BecsSession() { _fecsBecsInputQueue = new FecsBecsInputWrapper(FECS_INPUT_QUEUE_PATH, BecsMain.Logger); _becsfecsOutputQueue = new BecsFecsOutputWrapper(FECS_OUTPUT_QUEUE_PATH, BecsMain.Logger); _ccBecsInputQueue = new CcBecsInputWrapper(CC_INPUT_QUEUE_PATH, BecsMain.Logger); _becsCcOutputQueue = new BecsCcOutputWrapper(CC_OUTPUT_QUEUE_PATH, BecsMain.Logger); _messagesSession = new MessagesSession(); }
/// <summary> /// Cosntructor taking the object needed to send messages to the /// output queue /// </summary> /// <param name="outQueue"></param> public OutputQueueBecsAdapter(BecsFecsOutputWrapper outQueue) { _outQueue = outQueue; }