[Tizen] Unify dnetmemoryenumlib terms to match the codebase (#291)
[platform/upstream/coreclr.git] / src / vm / clrprivtypecachewinrt.h
1 // Licensed to the .NET Foundation under one or more agreements.
2 // The .NET Foundation licenses this file to you under the MIT license.
3 // See the LICENSE file in the project root for more information.
4 // 
5
6 // 
7 // Contains VM implementation of WinRT type cache for code:CLRPrivBinderWinRT binder.
8 // 
9 //=====================================================================================================================
10
11 #pragma once
12
13 #include "internalunknownimpl.h"
14 #include "clrprivbinding.h"
15
16 //=====================================================================================================================
17 class CLRPrivTypeCacheWinRT : 
18     public IUnknownCommon<IUnknown>
19 {
20 public:
21     //=============================================================================================
22     // Class methods
23     
24     // S_OK - pAssembly contains type wszTypeName
25     // S_FALSE - pAssembly does not contain type wszTypeName
26     HRESULT ContainsType(
27         ICLRPrivAssembly * pAssembly, 
28         LPCWSTR            wszTypeName);
29     
30     // S_OK - pAssembly contains type wszTypeName
31     // S_FALSE - pAssembly does not contain type wszTypeName
32     // E_FAIL - assembly is not loaded
33     HRESULT ContainsTypeIfLoaded(
34         PTR_AppDomain        pAppDomain, 
35         PTR_ICLRPrivAssembly pPrivAssembly, 
36         LPCUTF8              szNamespace, 
37         LPCUTF8              szClassName, 
38         PTR_Assembly *       ppAssembly);
39     
40     static CLRPrivTypeCacheWinRT * GetOrCreateTypeCache();
41     
42 #ifndef DACCESS_COMPILE
43     
44 #ifndef CROSSGEN_COMPILE
45     // Raises user event DesignerNamespaceResolveEvent to get a list of files for this namespace.
46     void RaiseDesignerNamespaceResolveEvent(
47         LPCWSTR                                wszNamespace, 
48         CLRPrivBinderUtil::WStringListHolder * pFileNameList);
49 #endif // CROSSGEN_COMPILE
50     
51 #endif //!DACCESS_COMPILE
52     
53 private:
54     //=============================================================================================
55     // Private methods
56     
57     // Checks if the type (szNamespace/szClassName) is present in the assembly pAssembly.
58     HRESULT ContainsTypeHelper(
59         PTR_Assembly pAssembly, 
60         LPCUTF8      szNamespace, 
61         LPCUTF8      szClassName);
62     
63     //=============================================================================================
64     // Class fields
65     
66     static CLRPrivTypeCacheWinRT * s_pSingleton;
67     
68 };  // class CLRPrivTypeCaheWinRT
69
70 typedef DPTR(CLRPrivTypeCacheWinRT) PTR_CLRPrivTypeCacheWinRT;