/******************************************************************************* Function Name : vFormatTimeStamp Input(s) : nTimeStamp - Current time stamp bOverWrite - Mode of Time Calculation wDisplayTimeMode - Type of Time Calculation nIndex - Index of the element nOverWriteMapKey - Unique key to CMap to get previous time stamp omStrTime - Object Reference to store the formatted time value Output : - Functionality : This function will compute the time and will format it and will store it in the omStrTime string. Member of : CTimeManager Author(s) : Raja N Date Created : 23.06.2004 Modifications : Raja N on 22.07.2004 Modified the code to refer vFormatTimeStamp overloaded function. This will split the functionality logically Modifications : Raja N on 22.07.2004 Changed map index variable type from int to __int64 *******************************************************************************/ void CTimeManager::vFormatTimeStamp(int nTimeStamp, BOOL bOverWrite, WORD wDisplayTimeMode, int nIndex, __int64 /*n64OverWriteMapKey*/, CString& omStrTime) { int nRefTime = 0; // Find reference time stamp for relative mode if( wDisplayTimeMode == eRELATIVE_MODE) { if(bOverWrite == FALSE ) { // To get the previous time stamp // If index is not zero then get it from the buffer if( nIndex != 0 ) { // ??? } // If index is zero then refer the backup copy of time stamp else { // ??? } } else { // ??? } } // Format the time stamp vFormatTimeStamp(nTimeStamp, nRefTime, wDisplayTimeMode, omStrTime); }
/****************************************************************************** Function Name : vCalculateAndFormatTM Input(s) : bExprnFlag - Details of time mode TimeStamp - Msg time stamp, Rel time in case of Rel. mode acTime - Buffer to store formatted time Output : Functionality : Format time details Member of : CFormatMsgCommon Friend of : - Author(s) : Anish kumar Date Created : 01.04.2010 ******************************************************************************/ void CFormatMsgCommon::vCalculateAndFormatTM(BYTE bExprnFlag, UINT64 TimeStamp, char acTime[]) { /* In order to make this function work properly ENSURE bExprnFlag has ONLY 1 time mode bit up */ DWORD dwTSTmp = 0; // temporary time stamp if (IS_TM_SYS_SET(bExprnFlag)) { dwTSTmp = (DWORD) ((TimeStamp - m_qwAbsBaseTime) + m_qwRefSysTime); } else if (IS_TM_REL_SET(bExprnFlag)) { dwTSTmp = (DWORD) TimeStamp; } else if (IS_TM_ABS_SET(bExprnFlag)) { dwTSTmp = (DWORD) (TimeStamp - m_qwAbsBaseTime); } else { ASSERT(FALSE); } vFormatTimeStamp(dwTSTmp, acTime); }
void CFormatMsgCommon::vCalculateAndFormatTM(BYTE bExprnFlag, UINT64 TimeStamp, char acTime[]) { /* In order to make this function work properly ENSURE bExprnFlag has ONLY ONE time mode bit up */ DWORD dwTSTmp = 0; // temporary time stamp UINT64 qwRefSysTime, qwAbsBaseTime; m_ouRefTimeKeeper.vGetTimeParams(qwRefSysTime, qwAbsBaseTime); if (IS_TM_SYS_SET(bExprnFlag)) { dwTSTmp = (DWORD) ((TimeStamp - qwAbsBaseTime) + qwRefSysTime); } else if (IS_TM_REL_SET(bExprnFlag)) { if (m_qwRelBaseTime == 0) { m_qwRelBaseTime = TimeStamp; } //Time difference should be +ve value if(TimeStamp >= m_qwRelBaseTime) { dwTSTmp = (DWORD) (TimeStamp - m_qwRelBaseTime); } else { dwTSTmp = (DWORD) (m_qwRelBaseTime - TimeStamp); } m_qwRelBaseTime = TimeStamp; } else if (IS_TM_ABS_SET(bExprnFlag)) { //Time difference should be +ve value if(TimeStamp >= qwAbsBaseTime) { dwTSTmp = (DWORD) (TimeStamp - qwAbsBaseTime); } else { dwTSTmp = (DWORD) (qwAbsBaseTime - TimeStamp); } } else if (IS_TM_ABS_RES(bExprnFlag)) { if(m_bResetMsgAbsTime == TRUE) { //reset the time for new logging session SYSTEMTIME LocalCurrTime; GetLocalTime(&LocalCurrTime); UINT64 RefCurrTime = (LocalCurrTime.wHour * 3600 + LocalCurrTime.wMinute * 60 + + LocalCurrTime.wSecond) * 10000 + (LocalCurrTime.wMilliseconds * 10); UINT64 RefLogTime = (m_LogSysTime.wHour * 3600 + m_LogSysTime.wMinute * 60 + + m_LogSysTime.wSecond) * 10000 + (m_LogSysTime.wMilliseconds * 10); m_qwLogDelayTime = (DWORD)(RefCurrTime - RefLogTime);//for log & msg delay time if(TimeStamp >= qwAbsBaseTime)//Time difference should be +ve value { m_qwResTime = TimeStamp - qwAbsBaseTime; } else { m_qwResTime = qwAbsBaseTime - TimeStamp; } m_bResetMsgAbsTime = FALSE; } //Time difference should be +ve value if(TimeStamp >= (qwAbsBaseTime + m_qwResTime)) { dwTSTmp = (DWORD) (TimeStamp - qwAbsBaseTime - m_qwResTime ); } else { dwTSTmp = (DWORD) (m_qwResTime + qwAbsBaseTime - TimeStamp ); } dwTSTmp = dwTSTmp + m_qwLogDelayTime; //add msg delay time } else { ASSERT(FALSE); } vFormatTimeStamp(dwTSTmp, acTime); }
void CFormatMsgCommon::vCalculateAndFormatTM(BYTE bExprnFlag, UINT64 TimeStamp, char acTime[], int bufferSize) { UINT64 qwRefSysTime, qwAbsBaseTime; m_ouRefTimeKeeper.vGetTimeParams(qwRefSysTime, qwAbsBaseTime); /* temporary time stamp */ DWORD dwTSTmp = 0; if (IS_TM_SYS_SET(bExprnFlag)) { dwTSTmp = (DWORD) ((TimeStamp - qwAbsBaseTime) + qwRefSysTime); } else if (IS_TM_REL_SET(bExprnFlag)) { if (m_qwRelBaseTime == 0) { m_qwRelBaseTime = TimeStamp; } /* Time difference should be +ve value */ if(TimeStamp >= m_qwRelBaseTime) { dwTSTmp = (DWORD) (TimeStamp - m_qwRelBaseTime); } else { dwTSTmp = (DWORD) (m_qwRelBaseTime - TimeStamp); } m_qwRelBaseTime = TimeStamp; } else if (IS_TM_ABS_SET(bExprnFlag)) { /* Time difference should be +ve value */ if(TimeStamp >= qwAbsBaseTime) { dwTSTmp = (DWORD) (TimeStamp - qwAbsBaseTime); } else { dwTSTmp = (DWORD) (qwAbsBaseTime - TimeStamp); } } else if (IS_TM_ABS_RES(bExprnFlag)) { if(m_bResetMsgAbsTime == TRUE) { /* reset the time for new logging session */ SYSTEMTIME LocalCurrTime; GetLocalTime(&LocalCurrTime); UINT64 RefCurrTime = LocalCurrTime.wHour * 36000000 + LocalCurrTime.wMinute * 600000 + LocalCurrTime.wSecond * 10000 + LocalCurrTime.wMilliseconds * 10; UINT64 RefLogTime = m_LogSysTime.wHour * 36000000 + m_LogSysTime.wMinute * 600000 + m_LogSysTime.wSecond * 10000 + m_LogSysTime.wMilliseconds * 10; /* for log & msg delay time */ m_qwLogDelayTime = (DWORD)(RefCurrTime - RefLogTime); /* Time difference should be +ve value */ if(TimeStamp >= qwAbsBaseTime) { m_qwResTime = TimeStamp - qwAbsBaseTime; } else { m_qwResTime = qwAbsBaseTime - TimeStamp; } m_bResetMsgAbsTime = FALSE; } /* Time difference should be +ve value */ if(TimeStamp >= (qwAbsBaseTime + m_qwResTime)) { dwTSTmp = (DWORD) (TimeStamp - qwAbsBaseTime - m_qwResTime ); } else { dwTSTmp = (DWORD) (m_qwResTime + qwAbsBaseTime - TimeStamp ); } /* add msg delay time */ dwTSTmp = dwTSTmp + m_qwLogDelayTime; } else { ASSERT(false); } vFormatTimeStamp(dwTSTmp, acTime, bufferSize); }