Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/dotnet/runtime.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/coreclr/md/hotdata/heapindex.h')
-rw-r--r--src/coreclr/md/hotdata/heapindex.h67
1 files changed, 67 insertions, 0 deletions
diff --git a/src/coreclr/md/hotdata/heapindex.h b/src/coreclr/md/hotdata/heapindex.h
new file mode 100644
index 00000000000..b257581ae77
--- /dev/null
+++ b/src/coreclr/md/hotdata/heapindex.h
@@ -0,0 +1,67 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+//
+// 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