//*** DATE FUNCTIONS

        public void SetStatisticsCollector(CPDMMessagesStatistics pStatColl)
        {
            trace.Write(TraceLevel.Debug, "CDatM::SetStatisticsCollector");

            try
            {
                m_pStatColl = pStatColl ?? throw new ArgumentNullException(nameof(pStatColl), "pStatColl is NULL");
            }
            catch (Exception error)
            {
                trace.Write(TraceLevel.Error, error.ToLogString());
            }
        }
        public virtual void Copy(CDatM pDatM)
        {
            trace.Write(TraceLevel.Debug, "CDatM::Copy");

            try
            {
                if (pDatM == null)
                {
                    throw new ArgumentNullException(nameof(pDatM));
                }

                m_strIDMsg = pDatM.m_strIDMsg;
                // Header
                m_dwTelID = pDatM.m_dwTelID;
                // Message Attributtes
                m_iIdentifier = pDatM.m_iIdentifier;
                m_iRet        = pDatM.m_iRet;
                m_iPriority   = pDatM.m_iPriority;
                m_iInUnit     = pDatM.m_iInUnit;

                // SAX
                m_bTagAtt = pDatM.m_bTagAtt;

                m_iTelType = pDatM.m_iTelType;
                m_iMxType  = pDatM.m_iMxType;
                m_iNbError = pDatM.m_iNbError;

                m_dtHdDate = pDatM.m_dtHdDate.Copy();

                m_szHdSrc    = pDatM.m_szHdSrc;
                m_szDst      = pDatM.m_szDst;
                m_szTagValue = pDatM.m_szTagValue;
                m_szTagName  = pDatM.m_szTagName;

                m_pStatColl = pDatM.m_pStatColl;
            }
            catch (Exception error)
            {
                trace.Write(TraceLevel.Error, error.ToLogString());
            }
        }
        public virtual void Clear()
        {
            trace.Write(TraceLevel.Debug, "CDatM::Clear");

            try
            {
                m_bLookingForType = false;
                m_strIDMsg        = "";
                // Header
                m_dwTelID = 0;
                // Message Attributtes
                m_iIdentifier = GlobalDefs.DEF_UNDEFINED_VALUE;
                m_iRet        = GlobalDefs.DEF_UNDEFINED_VALUE;
                m_iPriority   = GlobalDefs.DEF_UNDEFINED_VALUE;
                m_iInUnit     = GlobalDefs.DEF_UNDEFINED_VALUE;

                m_iTelType = DEF_TELTYPE_UNKNOW;
                m_iMxType  = DEF_MTYPE_MUNKNOW;
                m_iNbError = 0;
                m_bTagAtt  = false;

                m_dtHdDate?.SetStatus(COPSDateStatus.Null);

                m_szHdSrc    = string.Empty;
                m_szDst      = string.Empty;
                m_szTagValue = string.Empty;
                m_szTagName  = string.Empty;

                m_iSent            = 0;
                m_pStatColl        = null;
                m_iSendingPriority = (int)Priority.PRIORITY_MEDIUM;
            }
            catch (Exception error)
            {
                trace.Write(TraceLevel.Error, error.ToLogString());
            }
        }