/
redgpu
/
ezEngine
Обзор
Документация
Войти
/
redgpu
/
ezEngine
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
v4
Projects/InspectorPlugin/OSFile.cpp
128 строк
3 KB
jankrassnigg
Milestone 4
27 мар 2014, 19:08
27 мар 2014, 19:08
bfef15a
Код
Авторство
О чём код?
#include <PCH.h> #include <Foundation/Communication/Telemetry.h> #include <Foundation/Threading/ThreadUtils.h> #include <Foundation/Threading/TaskSystem.h> #include <Foundation/IO/OSFile.h> static void OSFileEventHandler(const ezOSFile::EventData& e) { if (!ezTelemetry::IsConnectedToClient()) return; ezTelemetryMessage Msg; Msg.GetWriter() << e.m_iFileID; switch (e.m_EventType) { case ezOSFile::EventType::FileOpen: { Msg.SetMessageID('FILE', 'OPEN'); Msg.GetWriter() << e.m_szFile; Msg.GetWriter() << (ezUInt8) e.m_FileMode; Msg.GetWriter() << e.m_bSuccess; } break; case ezOSFile::EventType::FileRead: { Msg.SetMessageID('FILE', 'READ'); Msg.GetWriter() << e.m_uiBytesAccessed; } break; case ezOSFile::EventType::FileWrite: { Msg.SetMessageID('FILE', 'WRIT'); Msg.GetWriter() << e.m_uiBytesAccessed; Msg.GetWriter() << e.m_bSuccess; } break; case ezOSFile::EventType::FileClose: { Msg.SetMessageID('FILE', 'CLOS'); } break; case ezOSFile::EventType::FileExists: { Msg.SetMessageID('FILE', 'EXST'); Msg.GetWriter() << e.m_szFile; Msg.GetWriter() << e.m_bSuccess; } break; case ezOSFile::EventType::FileDelete: { Msg.SetMessageID('FILE', 'DEL'); Msg.GetWriter() << e.m_szFile; Msg.GetWriter() << e.m_bSuccess; } break; case ezOSFile::EventType::MakeDir: { Msg.SetMessageID('FILE', 'CDIR'); Msg.GetWriter() << e.m_szFile; Msg.GetWriter() << e.m_bSuccess; } break; case ezOSFile::EventType::FileCopy: { Msg.SetMessageID('FILE', 'COPY'); Msg.GetWriter() << e.m_szFile; Msg.GetWriter() << e.m_szFile2; Msg.GetWriter() << e.m_bSuccess; } break; case ezOSFile::EventType::FileStat: { Msg.SetMessageID('FILE', 'STAT'); Msg.GetWriter() << e.m_szFile; Msg.GetWriter() << e.m_bSuccess; } break; case ezOSFile::EventType::FileCasing: { Msg.SetMessageID('FILE', 'CASE'); Msg.GetWriter() << e.m_szFile; Msg.GetWriter() << e.m_bSuccess; } break; } ezUInt8 uiThreadType = 0; if (ezThreadUtils::IsMainThread()) uiThreadType = 1 << 0; else if (ezTaskSystem::IsLoadingThread()) uiThreadType = 1 << 1; else uiThreadType = 1 << 2; EZ_ASSERT(uiThreadType == 1, "Send"); Msg.GetWriter() << e.m_Duration.GetSeconds(); Msg.GetWriter() << uiThreadType; ezTelemetry::Broadcast(ezTelemetry::Reliable, Msg); } void AddOSFileEventHandler() { ezOSFile::AddEventHandler(OSFileEventHandler); } void RemoveOSFileEventHandler() { ezOSFile::RemoveEventHandler(OSFileEventHandler); } EZ_STATICLINK_FILE(InspectorPlugin, InspectorPlugin_OSFile);