From 4b4aad7217d3292650e77eec2cf4c198ea9c3b4b Mon Sep 17 00:00:00 2001 From: Jiyoung Yun Date: Wed, 23 Nov 2016 19:09:09 +0900 Subject: Imported Upstream version 1.1.0 --- src/ToolBox/superpmi/superpmi-shared/tocfile.h | 78 ++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 src/ToolBox/superpmi/superpmi-shared/tocfile.h (limited to 'src/ToolBox/superpmi/superpmi-shared/tocfile.h') 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 -- cgit v1.2.3