24 lines
		
	
	
		
			772 B
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			24 lines
		
	
	
		
			772 B
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								#pragma once
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include "CSExportedFunction.h"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// Native bound function. If you want to bind a function to C#, use this macro.
							 | 
						||
| 
								 | 
							
								// The managed delegate signature must match the native function signature + outer name, and all params need to be blittable.
							 | 
						||
| 
								 | 
							
								#define UNREALSHARP_FUNCTION()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class FCSBindsManager
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								public:
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
									static FCSBindsManager* Get();
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
									UNREALSHARPBINDS_API static void RegisterExportedFunction(const FName& ClassName, const FCSExportedFunction& ExportedFunction);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UNREALSHARPBINDS_API static void* GetBoundFunction(const TCHAR* InOuterName, const TCHAR* InFunctionName, int32 ManagedFunctionSize);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								private:
							 | 
						||
| 
								 | 
							
									FCSBindsManager() = default;
							 | 
						||
| 
								 | 
							
									static FCSBindsManager* BindsManagerInstance;
							 | 
						||
| 
								 | 
							
									TMap<FName, TArray<FCSExportedFunction>> ExportedFunctionsMap;
							 | 
						||
| 
								 | 
							
								};
							 |