diff options
author | Jiyoung Yun <jy910.yun@samsung.com> | 2016-11-23 19:09:09 +0900 |
---|---|---|
committer | Jiyoung Yun <jy910.yun@samsung.com> | 2016-11-23 19:09:09 +0900 |
commit | 4b4aad7217d3292650e77eec2cf4c198ea9c3b4b (patch) | |
tree | 98110734c91668dfdbb126fcc0e15ddbd93738ca /src/ToolBox/superpmi/superpmi-shared/tocfile.h | |
parent | fa45f57ed55137c75ac870356a1b8f76c84b229c (diff) | |
download | coreclr-4b4aad7217d3292650e77eec2cf4c198ea9c3b4b.tar.gz coreclr-4b4aad7217d3292650e77eec2cf4c198ea9c3b4b.tar.bz2 coreclr-4b4aad7217d3292650e77eec2cf4c198ea9c3b4b.zip |
Imported Upstream version 1.1.0upstream/1.1.0
Diffstat (limited to 'src/ToolBox/superpmi/superpmi-shared/tocfile.h')
-rw-r--r-- | src/ToolBox/superpmi/superpmi-shared/tocfile.h | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/src/ToolBox/superpmi/superpmi-shared/tocfile.h b/src/ToolBox/superpmi/superpmi-shared/tocfile.h new file mode 100644 index 0000000000..a0e7bde146 --- /dev/null +++ b/src/ToolBox/superpmi/superpmi-shared/tocfile.h @@ -0,0 +1,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 |