summaryrefslogtreecommitdiff
path: root/src/gc/gchandletableimpl.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gc/gchandletableimpl.h')
-rw-r--r--src/gc/gchandletableimpl.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/gc/gchandletableimpl.h b/src/gc/gchandletableimpl.h
new file mode 100644
index 0000000000..af20f52e54
--- /dev/null
+++ b/src/gc/gchandletableimpl.h
@@ -0,0 +1,48 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+#ifndef GCHANDLETABLE_H_
+#define GCHANDLETABLE_H_
+
+#include "gcinterface.h"
+
+class GCHandleTable : public IGCHandleTable
+{
+public:
+ virtual bool Initialize();
+
+ virtual void Shutdown();
+
+ virtual void* GetGlobalHandleStore();
+
+ virtual void* CreateHandleStore(void* context);
+
+ virtual void* GetHandleContext(OBJECTHANDLE handle);
+
+ virtual void DestroyHandleStore(void* store);
+
+ virtual void UprootHandleStore(void* store);
+
+ virtual bool ContainsHandle(void* store, OBJECTHANDLE handle);
+
+ virtual OBJECTHANDLE CreateHandleOfType(void* store, Object* object, int type);
+
+ virtual OBJECTHANDLE CreateHandleOfType(void* store, Object* object, int type, int heapToAffinitizeTo);
+
+ virtual OBJECTHANDLE CreateHandleWithExtraInfo(void* store, Object* object, int type, void* pExtraInfo);
+
+ virtual OBJECTHANDLE CreateDependentHandle(void* store, Object* primary, Object* secondary);
+
+ virtual OBJECTHANDLE CreateGlobalHandleOfType(Object* object, int type);
+
+ virtual OBJECTHANDLE CreateDuplicateHandle(OBJECTHANDLE handle);
+
+ virtual void DestroyHandleOfType(OBJECTHANDLE handle, int type);
+
+ virtual void DestroyHandleOfUnknownType(OBJECTHANDLE handle);
+
+ virtual void* GetExtraInfoFromHandle(OBJECTHANDLE handle);
+};
+
+#endif // GCHANDLETABLE_H_