public ACSConfirmationEvent Parse(IStructReader reader)
        {
            Logger logger = LogManager.GetLogger("TSAPIClient");

            try
            {
                logger.Info("ACSOpenStreamConfParser.Parse: eventType=ACS_OPEN_STREAM_CONF");
                logger.Info("ACSOpenStreamConfParser.Parse: try to read the ACSOpenStreamConfEvent_t confirmation event...");

                object result;

                if (reader.TryReadStruct(typeof(ACSOpenStreamConfEvent_t), out result))
                {
                    logger.Info("ACSOpenStreamConfParser.Parse: successfully read the ACSOpenStreamConfEvent_t confirmation event!");

                    ACSOpenStreamConfEvent_t acsopen = (ACSOpenStreamConfEvent_t)result;

                    ACSConfirmationEvent acsConfirmation = new ACSConfirmationEvent();

                    acsConfirmation.u.acsopen = acsopen;

                    return(acsConfirmation);
                }

                return(null);
            }
            catch (Exception err)
            {
                logger.Error(string.Format("Error in ACSOpenStreamConfParser.Parse: {0}", err));
            }

            return(null);
        }
        public ACSConfirmationEvent Parse(IStructReader reader)
        {
            Logger logger = LogManager.GetLogger("TSAPIClient");

            try
            {
                logger.Info("ACSUniversalFailureConfParser.Parse: eventType=ACS_UNIVERSAL_FAILURE_CONF");
                logger.Info("ACSUniversalFailureConfParser.Parse: try to read the ACSUniversalFailureConfEvent_t confirmation event...");

                object result;

                if (reader.TryReadStruct(typeof(ACSUniversalFailureConfEvent_t), out result))
                {
                    logger.Info("ACSUniversalFailureConfParser.Parse: successfully read the ACSUniversalFailureConfEvent_t confirmation event!");

                    ACSUniversalFailureConfEvent_t failureEvent = (ACSUniversalFailureConfEvent_t)result;

                    logger.Info("ACSUniversalFailureConfParser.Parse: failureEvent={0}", failureEvent.error);

                    ACSConfirmationEvent acsConfirmation = new ACSConfirmationEvent();

                    acsConfirmation.u.failureEvent = failureEvent;

                    return acsConfirmation;
                }

                return null;
            }
            catch (Exception err)
            {
                logger.Error(string.Format("Error in ACSUniversalFailureConfParser.Parse: {0}", err));
            }

            return null;
        }
        public ACSConfirmationEvent Parse(IStructReader reader)
        {
            Logger logger = LogManager.GetLogger("TSAPIClient");

            try
            {
                logger.Info("ACSSetHeartbeatIntervalConfParser.Parse: eventType=ACS_SET_HEARTBEAT_INTERVAL_CONF");
                logger.Info("ACSSetHeartbeatIntervalConfParser.Parse: try to read the ACSSetHeartbeatIntervalConfEvent_t confirmation event...");

                object result;

                if (reader.TryReadStruct(typeof(ACSSetHeartbeatIntervalConfEvent_t), out result))
                {
                    logger.Info("ACSSetHeartbeatIntervalConfParser.Parse: successfully read the ACSSetHeartbeatIntervalConfEvent_t confirmation event!");

                    ACSSetHeartbeatIntervalConfEvent_t acssetheartbeatinterval = (ACSSetHeartbeatIntervalConfEvent_t)result;

                    ACSConfirmationEvent acsConfirmation = new ACSConfirmationEvent();

                    acsConfirmation.u.acssetheartbeatinterval = acssetheartbeatinterval;

                    return(acsConfirmation);
                }

                return(null);
            }
            catch (Exception err)
            {
                logger.Error(string.Format("Error in ACSSetHeartbeatIntervalConfParser.Parse: {0}", err));
            }

            return(null);
        }
Exemplo n.º 4
0
        protected void Acsconfirmation(ACSConfirmationEvent data, eventTypeACS eventType)
        {
            switch (eventType)
            {
            case eventTypeACS.ACS_ABORT_STREAM:
                AlertClose();
                break;

            case eventTypeACS.ACS_CLOSE_STREAM_CONF:
                AlertClose();
                break;

            case eventTypeACS.ACS_OPEN_STREAM_CONF:
                OnConnnectedEvent?.Invoke(this, null);
                CbTaskNew.Set(data.invokeID, new NullTsapiReturn());
                StatusConnection = StatusConection.Open;
                _waitClient.Set();
                break;

            case eventTypeACS.ACS_UNIVERSAL_FAILURE_CONF:
                if (OnUniversalFailureEvent != null)
                {
                    OnUniversalFailureSysEvent?.Invoke(this,
                                                       new UniversalFailureSys {
                        Error = data.failureEvent.error, EventType = eventType
                    });
                }
                CbTaskNew.Clear();
                AnalizeFailurs(data.failureEvent.error);
                break;

            default:
                Log.Error($"{LinkName} : Error ACSCONFIRMATION  ",
                          new ProgrammingExeption($"Не обработан event '{eventType}' в ACSCONFIRMATION"));
                throw new ProgrammingExeption($"Не обработан event '{eventType}' в ACSCONFIRMATION");
            }
        }
Exemplo n.º 5
0
        internal CSTAEvent_t Read()
        {
            try
            {
                logger.Info("EventReader.Read: read event header...");

                object result;

                if (m_FrameReader.TryReadStruct(typeof(ACSEventHeader_t), out result))
                {
                    ACSEventHeader_t eventHeader = (ACSEventHeader_t)result;

                    logger.Info("EventReader.Read: acsHandle={0};eventClass={1};eventType={2};", eventHeader.acsHandle, eventHeader.eventClass, eventHeader.eventType);

                    switch (eventHeader.eventClass)
                    {
                    case Constants.CSTACONFIRMATION:

                        #region CSTACONFIRMATION

                        int invokeID = m_FrameReader.ReadInt32();

                        logger.Info("EventReader.Read.CSTACONFIRMATION: invokeID={0};", invokeID);

                        logger.Info("EventReader.Read.CSTACONFIRMATION: Getting CSTAConfParser from parserFactory...");
                        ICSTAConfirmationParser cstaConfParser = m_CSTAConfParserFactory.CreateParser(eventHeader.eventType);

                        if (cstaConfParser != null)
                        {
                            CSTAConfirmationEvent cstaConfirmation = cstaConfParser.Parse(m_FrameReader);
                            cstaConfirmation.invokeID = invokeID;

                            CSTAEvent_t cstaEvent = new CSTAEvent_t()
                            {
                                eventHeader = eventHeader,
                                Event       = { cstaConfirmation = cstaConfirmation }
                            };

                            return(cstaEvent);
                        }

                        logger.Info("EventReader.Read.CSTACONFIRMATION: ICSTAConfParserFactory failed to return parser!!");

                        #endregion CSTACONFIRMATION

                        break;

                    case Constants.CSTAUNSOLICITED:

                        #region CSTAUNSOLICITED

                        int xref = m_FrameReader.ReadInt32();

                        logger.Info("EventReader.Read.CSTAUNSOLICITED: xref={0};", xref);

                        logger.Info("EventReader.Read.CSTAUNSOLICITED: Getting CSTAUnsolicitedParser from parserFactory...");
                        ICSTAUnsolicitedParser cstaUnsolicitedParser = m_CSTAUnsolicitedParserFactory.CreateParser(eventHeader.eventType);

                        if (cstaUnsolicitedParser != null)
                        {
                            CSTAUnsolicitedEvent cstaUnsolicited = cstaUnsolicitedParser.Parse(m_FrameReader);

                            cstaUnsolicited.monitorCrossRefId = xref;

                            CSTAEvent_t cstaEvent = new CSTAEvent_t()
                            {
                                eventHeader = eventHeader,
                                Event       = { cstaUnsolicited = cstaUnsolicited }
                            };


                            return(cstaEvent);
                        }

                        logger.Info("EventReader.Read.CSTAUNSOLICITED: ICSTAUnsolicitedParserFactory failed to return parser!!");

                        #endregion CSTAUNSOLICITED

                        break;

                    case Constants.ACSCONFIRMATION:

                        #region ACSCONFIRMATION

                        invokeID = m_FrameReader.ReadInt32();

                        logger.Info("EventReader.Read.ACSCONFIRMATION: invokeID={0};", invokeID);

                        logger.Info("EventReader.Read.ACSCONFIRMATION: Getting ACSConfirmationParser from parserFactory...");
                        IACSConfirmationParser acsConfParser = m_ACSConfParserFactory.CreateParser(eventHeader.eventType);

                        if (acsConfParser != null)
                        {
                            ACSConfirmationEvent acsConfirmation = acsConfParser.Parse(m_FrameReader);
                            acsConfirmation.invokeID = invokeID;

                            CSTAEvent_t cstaEvent = new CSTAEvent_t()
                            {
                                eventHeader = eventHeader,
                                Event       = { acsConfirmation = acsConfirmation }
                            };

                            return(cstaEvent);
                        }

                        logger.Info("EventReader.Read.ACSCONFIRMATION: IACSConfirmationParserFactory failed to return parser!!");

                        #endregion ACSCONFIRMATION

                        break;

                    case Constants.ACSUNSOLICITED:

                        #region ACSUNSOLICITED

                        logger.Info("ACSUNSOLICITED :: Getting ACSUnsolicitedParser from parserFactory...");
                        IACSUnsolicitedParser acsUnsolicitedParser = m_ACSUnsolicitedParserFactory.CreateParser(eventHeader.eventType);

                        if (acsUnsolicitedParser != null)
                        {
                            ACSUnsolicitedEvent acsUnsolicited = acsUnsolicitedParser.Parse(m_FrameReader);

                            CSTAEvent_t cstaEvent = new CSTAEvent_t()
                            {
                                eventHeader = eventHeader,
                                Event       = { acsUnsolicited = acsUnsolicited }
                            };


                            return(cstaEvent);
                        }

                        logger.Info("ACSUNSOLICITED :: IACSUnsolicitedParserFactory failed to return parser!!");

                        #endregion ACSUNSOLICITED

                        break;
                    }
                }
            }
            catch (Exception err)
            {
                logger.Error(string.Format("Error in EventReader.ReadEvent: {0}", err));
            }

            return(null);
        }