summaryrefslogtreecommitdiff
path: root/src/md/hotdata/heapindex.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/md/hotdata/heapindex.h')
-rw-r--r--src/md/hotdata/heapindex.h69
1 files changed, 69 insertions, 0 deletions
diff --git a/src/md/hotdata/heapindex.h b/src/md/hotdata/heapindex.h
new file mode 100644
index 0000000000..88591374af
--- /dev/null
+++ b/src/md/hotdata/heapindex.h
@@ -0,0 +1,69 @@
+//
+// Copyright (c) Microsoft. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+//
+//
+// File: HotHeapWriter.h
+//
+
+//
+// Class code:HeapIndex represents type of MetaData heap (#String, #GUID, #Blob, or #US).
+//
+// ======================================================================================
+
+#pragma once
+
+namespace MetaData
+{
+
+// --------------------------------------------------------------------------------------
+//
+// This class represents type of MetaData heap (#String, #GUID, #Blob, or #US).
+//
+class HeapIndex
+{
+private:
+ UINT32 m_Index;
+public:
+ enum
+ {
+ StringHeapIndex = 0,
+ GuidHeapIndex = 1,
+ BlobHeapIndex = 2,
+ UserStringHeapIndex = 3,
+
+ CountHeapIndex,
+ InvalidHeapIndex
+ };
+ HeapIndex()
+ {
+ m_Index = InvalidHeapIndex;
+ }
+ HeapIndex(UINT32 index)
+ {
+ _ASSERTE(IsValid(index));
+ m_Index = index;
+ }
+ void Set(UINT32 index)
+ {
+ _ASSERTE(IsValid(index));
+ m_Index = index;
+ }
+ void SetInvalid()
+ {
+ m_Index = InvalidHeapIndex;
+ }
+ BOOL IsValid() const
+ {
+ return m_Index < CountHeapIndex;
+ }
+ static BOOL IsValid(UINT32 index)
+ {
+ return index < CountHeapIndex;
+ }
+ UINT32 Get() const
+ { return m_Index; }
+
+}; // class HeapIndex
+
+}; // namespace MetaData