5 typedef struct _MonoDomain MonoDomain;
6 typedef struct _NonoAssembly MonoAssembly;
7 typedef struct _MonoImage MonoImage;
8 typedef struct _MonoClass MonoClass;
9 typedef struct _MonoObject MonoObject;
10 typedef struct _MonoMethod MonoMethod;
11 typedef struct _MonoString MonoString;
12 typedef struct _MonoArray MonoArray;
14 typedef void (*mono_set_dirs_ptr) (const char *, const char *);
15 typedef void (*mono_set_assemblies_path_ptr) (const char*);
16 typedef MonoDomain* (*mono_jit_init_ptr) (const char *);
17 typedef void (*mono_config_parse_ptr) (const char *);
18 typedef MonoAssembly* (*mono_domain_assembly_open_ptr) (MonoDomain *, const char *);
19 typedef MonoImage* (*mono_assembly_get_image_ptr) (MonoAssembly *);
20 typedef MonoClass* (*mono_class_from_name_ptr) (MonoImage *, const char *, const char *);
21 typedef MonoObject* (*mono_runtime_invoke_ptr) (MonoMethod *, void *, void **, MonoObject **);
22 typedef MonoMethod* (*mono_class_get_method_from_name_ptr) (MonoClass *, const char *, int param_count);
23 typedef MonoString* (*mono_string_new_ptr) (MonoDomain *, const char *);
24 typedef MonoString* (*mono_object_to_string_ptr) (MonoObject *, MonoObject **);
25 typedef char* (*mono_string_to_utf8_ptr) (MonoString *string_obj);
27 typedef MonoClass* (*mono_get_string_class_ptr) ();
28 typedef MonoArray* (*mono_array_new_ptr) (MonoDomain *, MonoClass *, uintptr_t);
29 typedef char* (*mono_array_addr_with_size_ptr) (MonoArray *, int, uintptr_t);
30 typedef void (*mono_jit_cleanup_ptr) (MonoDomain *domain);
31 typedef int (*mono_jit_exec_ptr) (MonoDomain *domain, MonoAssembly *assembly, int argc, char *argv[]);
38 class MonoRuntime : public tizen::runtime::LauncherInterface
43 int Initialize(bool standalone) override;
44 void Dispose() override;
45 int RunManagedLauncher() override;
46 int Launch(const char* root, const char* path, int argc, char* argv[]) override;
50 mono_set_dirs_ptr SetDirs;
51 mono_set_assemblies_path_ptr SetAssembliesPath;
52 mono_jit_init_ptr JitInit;
53 mono_domain_assembly_open_ptr DomainAssemblyOpen;
54 mono_assembly_get_image_ptr AssemblyGetImage;
55 mono_class_from_name_ptr ClassFromName;
56 mono_runtime_invoke_ptr RuntimeInvoke;
57 mono_class_get_method_from_name_ptr ClassGetMethodFromName;
58 mono_object_to_string_ptr ObjectToString;
59 mono_string_to_utf8_ptr StringToUtf8;
60 mono_string_new_ptr NewString;
61 mono_get_string_class_ptr GetStringClass;
62 mono_array_new_ptr ArrayNew;
63 mono_array_addr_with_size_ptr ArrayAddrWithSize;
64 mono_jit_cleanup_ptr DomainCleanup;
65 mono_jit_exec_ptr AssemblyExec;
68 MonoAssembly* launcherAssembly;
70 MonoClass* assemblyManagerClass;
71 MonoMethod* prepareLaunch;
74 std::string launcherAssemblyPath;
75 std::string deviceAPIDirectory;
76 std::string runtimeDirectory;
81 } // namespace runtime