void CLogArchiver::End(CCmdSession* pSession, const char *sCmdLine, const char* sCmdArg) { CString oLogName; CFormatString oFmt(sCmdArg); int32 nRet = oFmt.Scan("%s", &oLogName); if(nRet < 1) { pSession->Print("Missing the server address argument\r\n"); return; } if(!oLogName.IsIdentifierOfC()) { pSession->Print("Invalid logname\r\n"); return; } CArchiverTable* pTable = CArchiverTable::GetInstance(); pTable->m_oMutex.Enter(); CRbTreeNode* pIt = pTable->m_oArchiverTable.Find(oLogName); if(pIt == pTable->m_oArchiverTable.End()) { pTable->m_oMutex.Leave(); pSession->Print("The logname isn't existed\r\n"); return; } CLogArchiver* pItem = pTable->m_oArchiverTable.GetItem(pIt); pItem->DeRegister(); pTable->m_oMutex.Leave(); }
void CLogArchiver::Query(CCmdSession* pSession, const char *sCmdLine, const char* sCmdArg) { CString oLogName; CFormatString oFmt(sCmdArg); int32 nRet = oFmt.Scan("%s", &oLogName); if(nRet < 1) { pSession->Print("Missing the server address argument\r\n"); return; } if(!oLogName.IsIdentifierOfC()) { pSession->Print("Invalid logname\r\n"); return; } CArchiverTable* pTable = CArchiverTable::GetInstance(); pTable->m_oMutex.Enter(); CRbTreeNode* pIt = pTable->m_oArchiverTable.Find(oLogName); if(pIt == pTable->m_oArchiverTable.End()) { pTable->m_oMutex.Leave(); pSession->Print("The logname isn't existed\r\n"); return; } CString oChooser; CLogArchiver* pItem = pTable->m_oArchiverTable.GetItem(pIt); pItem->GetChooser(oChooser); CFormatString oFmt2; oFmt2.Print("The chooser is '%s', \r\nand the filter include:", oChooser.GetStr()); if(pItem->m_nFilter & FOCP_LOG_HOST) oFmt2.Print("HOST "); if(pItem->m_nFilter & FOCP_LOG_DATE) oFmt2.Print("DATE "); if(pItem->m_nFilter & FOCP_LOG_APPN) oFmt2.Print("APP "); if(pItem->m_nFilter & FOCP_LOG_MODU) oFmt2.Print("MODULE "); if(pItem->m_nFilter & FOCP_LOG_SRCF) oFmt2.Print("FILE "); if(pItem->m_nFilter & FOCP_LOG_FUNC) oFmt2.Print("FUNC"); pSession->Print("%s\r\n", oFmt2.GetStr()); pTable->m_oMutex.Leave(); }