| author | David Anderson <dvander@alliedmods.net> |
| Sun Sep 01 00:23:44 2013 -0700 (2013-09-01) | |
| changeset 4116 | 3e58428d988f |
| parent 4013 | 6201c1180e0e |
| permissions | -rw-r--r-- |
| dvander@4116 | 1 |
// vim: set ts=4 sw=4 tw=99 noet: |
| dvander@2193 | 2 |
#ifndef _INCLUDE_SOURCEPAWN_ENGINE_2_H_ |
| dvander@2193 | 3 |
#define _INCLUDE_SOURCEPAWN_ENGINE_2_H_ |
| dvander@2193 | 4 |
|
| dvander@2193 | 5 |
#include <sp_vm_api.h> |
| dvander@2193 | 6 |
|
| dvander@2193 | 7 |
namespace SourcePawn |
| dvander@2193 | 8 |
{ |
| dvander@2193 | 9 |
/** |
| dvander@2193 | 10 |
* @brief Outlines the interface a Virtual Machine (JIT) must expose |
| dvander@2193 | 11 |
*/ |
| dvander@2193 | 12 |
class SourcePawnEngine2 : public ISourcePawnEngine2 |
| dvander@2193 | 13 |
{ |
| dvander@2193 | 14 |
public: |
| dvander@2193 | 15 |
SourcePawnEngine2(); |
| dvander@2193 | 16 |
public: |
| dvander@2193 | 17 |
unsigned int GetAPIVersion(); |
| dvander@2193 | 18 |
const char *GetEngineName(); |
| dvander@2193 | 19 |
const char *GetVersionString(); |
| dvander@2193 | 20 |
IPluginRuntime *LoadPlugin(ICompilation *co, const char *file, int *err); |
| dvander@2193 | 21 |
SPVM_NATIVE_FUNC CreateFakeNative(SPVM_FAKENATIVE_FUNC callback, void *pData); |
| dvander@2193 | 22 |
void DestroyFakeNative(SPVM_NATIVE_FUNC func); |
| dvander@2193 | 23 |
IDebugListener *SetDebugListener(IDebugListener *listener); |
| dvander@2193 | 24 |
void SetProfiler(IProfiler *profiler); |
| dvander@2193 | 25 |
ICompilation *StartCompilation(); |
| dvander@2193 | 26 |
const char *GetErrorString(int err); |
| dvander@2226 | 27 |
bool Initialize(); |
| dvander@2226 | 28 |
void Shutdown(); |
| dvander@2545 | 29 |
IPluginRuntime *CreateEmptyRuntime(const char *name, uint32_t memory); |
| dvander@4013 | 30 |
bool InstallWatchdogTimer(size_t timeout_ms); |
| dvander@4116 | 31 |
|
| dvander@4116 | 32 |
bool SetJitEnabled(bool enabled) { |
| dvander@4116 | 33 |
jit_enabled_ = enabled; |
| dvander@4116 | 34 |
return true; |
| dvander@4116 | 35 |
} |
| dvander@4116 | 36 |
|
| dvander@4116 | 37 |
bool IsJitEnabled() { |
| dvander@4116 | 38 |
return jit_enabled_; |
| dvander@4116 | 39 |
} |
| dvander@2193 | 40 |
public: |
| dvander@2193 | 41 |
IProfiler *GetProfiler(); |
| dvander@2193 | 42 |
private: |
| dvander@2193 | 43 |
IProfiler *m_Profiler; |
| dvander@4116 | 44 |
bool jit_enabled_; |
| dvander@2193 | 45 |
}; |
| dvander@2193 | 46 |
} |
| dvander@2193 | 47 |
|
| dvander@2193 | 48 |
extern SourcePawn::SourcePawnEngine2 g_engine2; |
| dvander@2193 | 49 |
|
| dvander@2193 | 50 |
#endif //_INCLUDE_SOURCEPAWN_ENGINE_2_H_ |