39 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| #ifndef _INCLUDE_SOURCEPAWN_ENGINE_2_H_
 | |
| #define _INCLUDE_SOURCEPAWN_ENGINE_2_H_
 | |
| 
 | |
| #include <sp_vm_api.h>
 | |
| 
 | |
| namespace SourcePawn
 | |
| {
 | |
| 	/** 
 | |
| 	 * @brief Outlines the interface a Virtual Machine (JIT) must expose
 | |
| 	 */
 | |
| 	class SourcePawnEngine2 : public ISourcePawnEngine2
 | |
| 	{
 | |
| 	public:
 | |
| 		SourcePawnEngine2();
 | |
| 	public:
 | |
| 		unsigned int GetAPIVersion();
 | |
| 		const char *GetEngineName();
 | |
| 		const char *GetVersionString();
 | |
| 		IPluginRuntime *LoadPlugin(ICompilation *co, const char *file, int *err);
 | |
| 		SPVM_NATIVE_FUNC CreateFakeNative(SPVM_FAKENATIVE_FUNC callback, void *pData);
 | |
| 		void DestroyFakeNative(SPVM_NATIVE_FUNC func);
 | |
| 		IDebugListener *SetDebugListener(IDebugListener *listener);
 | |
| 		void SetProfiler(IProfiler *profiler);
 | |
| 		ICompilation *StartCompilation();
 | |
| 		const char *GetErrorString(int err);
 | |
| 		bool Initialize();
 | |
| 		void Shutdown();
 | |
| 		IPluginRuntime *CreateEmptyRuntime(const char *name, uint32_t memory);
 | |
| 	public:
 | |
| 		IProfiler *GetProfiler();
 | |
| 	private:
 | |
| 		IProfiler *m_Profiler;
 | |
| 	};
 | |
| }
 | |
| 
 | |
| extern SourcePawn::SourcePawnEngine2 g_engine2;
 | |
| 
 | |
| #endif //_INCLUDE_SOURCEPAWN_ENGINE_2_H_
 |