AngelscriptLanguageServer/server/src/src/Database.hpp

35 lines
1.1 KiB
C++

#ifndef AS_LSP_NATIVE_DATABASE_HPP
#define AS_LSP_NATIVE_DATABASE_HPP
#if !TESTS_BUILD
#include "../../node_modules/node-addon-api/napi.h"
#include "../angelscript/extensions/scriptbuilder/scriptbuilder.h"
#include "../angelscript/include/angelscript.h"
#include "ASTypeDefParser/TypeDefResult.hpp"
#include "Diagnostic.hpp"
class Database : public Napi::ObjectWrap<Database> {
private:
asIScriptEngine* _engine = nullptr;
CScriptBuilder _builder;
ASTypeDefParser::TypeDefResult _result;
std::vector<const Diagnostic*> _messages;
std::mutex _lock;
void SetupEngine();
void MessageCallback(const asSMessageInfo* msg);
public:
static Napi::Object Init(Napi::Env env, Napi::Object exports);
explicit Database(const Napi::CallbackInfo& info);
void SetEngineProperty(const Napi::CallbackInfo& info);
void Reset(const Napi::CallbackInfo& info);
void LoadScript(const Napi::CallbackInfo& info);
void LoadTypeDef(const Napi::CallbackInfo& info);
Napi::Value Build(const Napi::CallbackInfo& info);
Napi::Value GetMessages(const Napi::CallbackInfo& info);
};
#endif
#endif // AS_LSP_NATIVE_DATABASE_HPP