51 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| // vim: set ts=4 sw=4 tw=99 noet:
 | |
| #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);
 | |
| 		bool InstallWatchdogTimer(size_t timeout_ms);
 | |
| 
 | |
| 		bool SetJitEnabled(bool enabled) {
 | |
| 			jit_enabled_ = enabled;
 | |
| 			return true;
 | |
| 	    }
 | |
| 
 | |
| 		bool IsJitEnabled() {
 | |
| 			return jit_enabled_;
 | |
| 		}
 | |
| 	public:
 | |
| 		IProfiler *GetProfiler();
 | |
| 	private:
 | |
| 		IProfiler *m_Profiler;
 | |
| 		bool jit_enabled_;
 | |
| 	};
 | |
| }
 | |
| 
 | |
| extern SourcePawn::SourcePawnEngine2 g_engine2;
 | |
| 
 | |
| #endif //_INCLUDE_SOURCEPAWN_ENGINE_2_H_
 |