blob: a0e7bde14671bfd9d14aa2d30672f4e0a3e754e1 (
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
//
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
//
//----------------------------------------------------------
// TOCFile.h - Abstraction for reading a TOC file
//----------------------------------------------------------
#ifndef _TOCFile
#define _TOCFile
#include "methodcontext.h"
class TOCElement
{
public:
__int64 Offset;
int Number;
char Hash[MD5_HASH_BUFFER_SIZE];
TOCElement()
{
}
TOCElement(int number, __int64 offset)
: Offset(offset)
, Number(number)
{
}
};
class TOCFile
{
private:
TOCElement* m_tocArray;
size_t m_tocCount;
public:
TOCFile()
: m_tocArray(nullptr)
, m_tocCount(0)
{
}
~TOCFile()
{
Clear();
}
void Clear()
{
delete[] m_tocArray;
m_tocArray = nullptr;
m_tocCount = 0;
}
void LoadToc(const char *inputFileName, bool validate = true);
size_t GetTocCount()
{
return m_tocCount;
}
const TOCElement* GetElementPtr(size_t i)
{
if (i >= m_tocCount)
{
// error!
return nullptr;
}
return &m_tocArray[i];
}
};
#endif
|