Reorganized files

This commit is contained in:
2020-02-02 12:23:50 +01:00
parent e04ab6497a
commit aae96333b1
34 changed files with 24 additions and 24 deletions

View File

@@ -0,0 +1,37 @@
#ifndef PKMNLIB_CONTEXTPOOL_HPP
#define PKMNLIB_CONTEXTPOOL_HPP
#include <angelscript.h>
#include <vector>
class ContextPool {
std::vector<asIScriptContext*> _pool;
asIScriptEngine* _engine;
public:
ContextPool(asIScriptEngine* engine) : _engine(engine) {}
~ContextPool(){
for (auto ctx: _pool){
ctx->Release();
}
}
asIScriptContext* RequestContext() {
// Get a context from the pool, or create a new
asIScriptContext* ctx = nullptr;
if (!_pool.empty()) {
ctx = *_pool.rbegin();
_pool.pop_back();
} else
ctx = _engine->CreateContext();
return ctx;
}
void ReturnContextToPool(asIScriptContext* ctx) {
_pool.push_back(ctx);
ctx->Unprepare();
}
};
#endif // PKMNLIB_CONTEXTPOOL_HPP