to prevent crash while process terminate on profiling mode, kill process immedately...
[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
39                 bool initializeCoreClr(const char* appId, const char* assemblyProbePaths, const char* NIProbePaths, const char* pinvokeProbePaths, const char* tpaList);
40                 void preloadTypes();
41                 coreclr_initialize_ptr initializeClr;
42                 coreclr_execute_assembly_ptr executeAssembly;
43                 coreclr_shutdown_ptr shutdown;
44                 coreclr_create_delegate_ptr createDelegate;
45                 set_environment_variable_ptr setEnvironmentVariable;
46                 std::string __nativeLibDirectory;
47                 void* __coreclrLib;
48                 void* __hostHandle;
49                 unsigned int __domainId;
50                 int fd;
51                 bool __initialized;
52                 bool __enableLogManager;
53                 bool __isProfileMode;
54 };
55
56 }  // dotnetcore
57 }  // namespace runtime
58 }  // namespace tizen
59
60 #endif /* __DOTNET_LAUNCHER_H__ */