summaryrefslogtreecommitdiff
path: root/src/vm/assemblysink.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/vm/assemblysink.h')
-rw-r--r--src/vm/assemblysink.h59
1 files changed, 59 insertions, 0 deletions
diff --git a/src/vm/assemblysink.h b/src/vm/assemblysink.h
new file mode 100644
index 0000000000..9293a65b11
--- /dev/null
+++ b/src/vm/assemblysink.h
@@ -0,0 +1,59 @@
+// 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.
+
+/*============================================================
+**
+** Header: AssemblySink.hpp
+**
+** Purpose: Asynchronous call back for loading classes
+**
+**
+
+
+**
+===========================================================*/
+#ifndef _ASSEMBLYSINK_H
+#define _ASSEMBLYSINK_H
+
+#ifndef FEATURE_FUSION
+#error FEATURE_FUSION is not enabled, please do not include assemblysink.h
+#endif
+
+class AppDomain;
+
+class AssemblySink : public FusionSink
+{
+public:
+ AssemblySink(AppDomain* pDomain);
+ ~AssemblySink() { WRAPPER_NO_CONTRACT; };
+
+ void Reset();
+
+ ULONG STDMETHODCALLTYPE Release(void);
+
+ STDMETHODIMP OnProgress(DWORD dwNotification,
+ HRESULT hrNotification,
+ LPCWSTR szNotification,
+ DWORD dwProgress,
+ DWORD dwProgressMax,
+ LPVOID pvBindInfo,
+ IUnknown* punk);
+
+ virtual HRESULT Wait();
+
+ void RequireCodebaseSecurityCheck() {LIMITED_METHOD_CONTRACT; m_CheckCodebase = TRUE;}
+ BOOL DoCodebaseSecurityCheck() {LIMITED_METHOD_CONTRACT; return m_CheckCodebase;}
+ void SetAssemblySpec(AssemblySpec* pSpec)
+ {
+ LIMITED_METHOD_CONTRACT;
+ m_pSpec=pSpec;
+ }
+
+private:
+ ADID m_Domain; // Which domain (index) do I belong to
+ AssemblySpec* m_pSpec;
+ BOOL m_CheckCodebase;
+};
+
+#endif