C# .dll with code for type preloading (#57)
[platform/core/dotnet/launcher.git] / NativeLauncher / launcher / dotnet / dotnet_launcher.h
1 /*
2  * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  * Licensed under the Apache License, Version 2.0 (the License);
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an AS IS BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 #ifndef __DOTNET_LAUNCHER_H__
18 #define __DOTNET_LAUNCHER_H__
19
20 #include "launcher.h"
21 #include "coreclr_host.h"
22 #include "plugin_manager.h"
23
24 namespace tizen {
25 namespace runtime {
26 namespace dotnetcore {
27
28 class CoreRuntime
29 {
30         public:
31                 CoreRuntime(const char* mode);
32                 ~CoreRuntime();
33                 int initialize(bool standalone);
34                 void dispose();
35                 int launch(const char* appId, const char* root, const char* path, int argc, char* argv[]);
36
37         private:
38                 bool initializeCoreClr(const char* appId, const char* assemblyProbePaths, const char* pinvokeProbePaths, const char* tpaList);
39                 void preloadTypes();
40                 coreclr_initialize_ptr initializeClr;
41                 coreclr_execute_assembly_ptr executeAssembly;
42                 coreclr_shutdown_ptr shutdown;
43                 coreclr_create_delegate_ptr createDelegate;
44                 set_environment_variable_ptr setEnvironmentVariable;
45                 std::string __nativeLibDirectory;
46                 void* __coreclrLib;
47                 void* __hostHandle;
48                 unsigned int __domainId;
49                 int fd;
50                 bool __initialized;
51                 bool __enableLogManager;
52 };
53
54 }  // dotnetcore
55 }  // namespace runtime
56 }  // namespace tizen
57
58 #endif /* __DOTNET_LAUNCHER_H__ */