77
88typedef void * (*GetExtensionCls)();
99
10+ typedef int (CORECLR_DELEGATE_CALLTYPE* load_file_fn)(void * context, const char * filePath, int len);
11+ typedef void (CORECLR_DELEGATE_CALLTYPE* remove_file_fn)(void * context);
12+ typedef void (CORECLR_DELEGATE_CALLTYPE* interpret_as_string_fn)(void * object, int type, const char * out, int len);
13+ typedef void * (CORECLR_DELEGATE_CALLTYPE* allocate_pointer_fn)(int size, int count);
14+ typedef uint64_t (CORECLR_DELEGATE_CALLTYPE* get_plugin_memory_fn)(void * context);
15+ typedef void (CORECLR_DELEGATE_CALLTYPE* execute_function_fn)(void * ctx, void * pctx);
16+ typedef void (CORECLR_DELEGATE_CALLTYPE* state_fn)(int state);
17+
18+ extern load_file_fn loadFile;
19+ extern interpret_as_string_fn interpretAsString;
20+ extern remove_file_fn removeFile;
21+ extern allocate_pointer_fn allocatePointer;
22+ extern get_plugin_memory_fn getMemory;
23+ extern execute_function_fn execFunction;
24+ extern state_fn set_state;
25+
1026Extension::Extension (std::string name)
1127{
1228 m_name = name;
@@ -148,4 +164,18 @@ std::string Extension::GetError()
148164bool Extension::HasError ()
149165{
150166 return m_errored;
151- }
167+ }
168+
169+ EXT_API void * swiftly_GetDotnetPointer (int kind)
170+ {
171+ if (kind == 1 ) return (void *)loadFile;
172+ else if (kind == 2 ) return (void *)interpretAsString;
173+ else if (kind == 3 ) return (void *)removeFile;
174+ else if (kind == 4 ) return (void *)allocatePointer;
175+ else if (kind == 5 ) return (void *)getMemory;
176+ else if (kind == 6 ) return (void *)execFunction;
177+ else if (kind == 7 ) return (void *)set_state;
178+ else return nullptr ;
179+ }
180+
181+ void * GetDotnetPointer (int kind) { return nullptr ; }
0 commit comments