diff options
| author | oy <Tom_Adams@web.de> | 2011-03-05 11:46:24 +0100 |
|---|---|---|
| committer | oy <Tom_Adams@web.de> | 2011-03-05 11:46:24 +0100 |
| commit | 50b266086bcaac99ed3cd479a09990c54e35706a (patch) | |
| tree | e5854a880cec95cedd949103afa4531107bd1c8c /src/engine/shared/engine.cpp | |
| parent | fc692d85c8d960ef4754a2bbecc658975162b9e3 (diff) | |
| download | zcatch-50b266086bcaac99ed3cd479a09990c54e35706a.tar.gz zcatch-50b266086bcaac99ed3cd479a09990c54e35706a.zip | |
made dbg_dumpmem and dbg_lognetwork work again
Diffstat (limited to 'src/engine/shared/engine.cpp')
| -rw-r--r-- | src/engine/shared/engine.cpp | 55 |
1 files changed, 46 insertions, 9 deletions
diff --git a/src/engine/shared/engine.cpp b/src/engine/shared/engine.cpp index 0fa0a81a..6839cc64 100644 --- a/src/engine/shared/engine.cpp +++ b/src/engine/shared/engine.cpp @@ -3,10 +3,11 @@ #include <base/system.h> +#include <engine/console.h> #include <engine/engine.h> +#include <engine/storage.h> #include <engine/shared/config.h> #include <engine/shared/network.h> -#include <engine/console.h> static int HostLookupThread(void *pUser) @@ -19,16 +20,41 @@ static int HostLookupThread(void *pUser) class CEngine : public IEngine { public: - /* - static void con_dbg_dumpmem(IConsole::IResult *result, void *user_data) + IConsole *m_pConsole; + IStorage *m_pStorage; + bool m_Logging; + + static void Con_DbgDumpmem(IConsole::IResult *pResult, void *pUserData) { - mem_debug_dump(); + CEngine *pEngine = static_cast<CEngine *>(pUserData); + char aBuf[32]; + str_timestamp(aBuf, sizeof(aBuf)); + char aFilename[128]; + str_format(aFilename, sizeof(aFilename), "dumps/memory_%s.txt", aBuf); + mem_debug_dump(pEngine->m_pStorage->OpenFile(aFilename, IOFLAG_WRITE, IStorage::TYPE_SAVE)); } - static void con_dbg_lognetwork(IConsole::IResult *result, void *user_data) + static void Con_DbgLognetwork(IConsole::IResult *pResult, void *pUserData) { - CNetBase::OpenLog("network_sent.dat", "network_recv.dat"); - }*/ + CEngine *pEngine = static_cast<CEngine *>(pUserData); + + if(pEngine->m_Logging) + { + CNetBase::CloseLog(); + pEngine->m_Logging = false; + } + else + { + char aBuf[32]; + str_timestamp(aBuf, sizeof(aBuf)); + char aFilenameSent[128], aFilenameRecv[128]; + str_format(aFilenameSent, sizeof(aFilenameSent), "dumps/network_sent_%s.txt", aBuf); + str_format(aFilenameRecv, sizeof(aFilenameRecv), "dumps/network_recv_%s.txt", aBuf); + CNetBase::OpenLog(pEngine->m_pStorage->OpenFile(aFilenameSent, IOFLAG_WRITE, IStorage::TYPE_SAVE), + pEngine->m_pStorage->OpenFile(aFilenameRecv, IOFLAG_WRITE, IStorage::TYPE_SAVE)); + pEngine->m_Logging = true; + } + } CEngine(const char *pAppname) { @@ -51,8 +77,19 @@ public: m_JobPool.Init(1); - //MACRO_REGISTER_COMMAND("dbg_dumpmem", "", CFGFLAG_SERVER|CFGFLAG_CLIENT, con_dbg_dumpmem, 0x0, "Dump the memory"); - //MACRO_REGISTER_COMMAND("dbg_lognetwork", "", CFGFLAG_SERVER|CFGFLAG_CLIENT, con_dbg_lognetwork, 0x0, "Log the network"); + m_Logging = false; + } + + void Init() + { + m_pConsole = Kernel()->RequestInterface<IConsole>(); + m_pStorage = Kernel()->RequestInterface<IStorage>(); + + if(!m_pConsole || !m_pStorage) + return; + + m_pConsole->Register("dbg_dumpmem", "", CFGFLAG_SERVER|CFGFLAG_CLIENT, Con_DbgDumpmem, this, "Dump the memory"); + m_pConsole->Register("dbg_lognetwork", "", CFGFLAG_SERVER|CFGFLAG_CLIENT, Con_DbgLognetwork, this, "Log the network"); } void InitLogfile() |