blob: 8d1e1f2fbfe39307f361170a92257f48ef46d813 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
#pragma once
#include "../../Whisper/Utils/Trace/TraceStructures.h"
#include <atlstr.h>
#include <atlfile.h>
namespace Tracing
{
class TraceReader
{
const uint8_t* payloadPointer = nullptr;
const sTraceItem* items = nullptr;
size_t countItems = 0;
size_t countStrings = 0;
const uint32_t* stringIndex = nullptr;
const char* stringData = nullptr;
CAtlFile file;
CAtlFileMapping<uint8_t> mapping;
public:
TraceReader() = default;
~TraceReader() = default;
HRESULT open( LPCTSTR path );
size_t size() const { return countItems; }
const sTraceItem& operator[]( size_t idx ) const;
CStringA getName( const sTraceItem& item ) const;
const void* payload( const sTraceItem& item ) const
{
return payloadPointer + item.payloadOffset;
}
};
}
|