#pragma once #include "APIHelp.h" #include "LiteLoader/include/llapi/KVDBAPI.h" #include //////////////////// Classes //////////////////// //// KVDB class KVDBClass : public ScriptClass { private: std::unique_ptr kvdb; int unloadCallbackIndex = -1; public: explicit KVDBClass(const Local& scriptObj, const string& dir); explicit KVDBClass(const string& dir); ~KVDBClass(); static KVDBClass* constructor(const Arguments& args); bool isValid() { return kvdb->isValid(); } Local get(const Arguments& args); Local set(const Arguments& args); Local del(const Arguments& args); Local close(const Arguments& args); Local listKey(const Arguments& args); // For Compatibility static Local newDb(const string& dir); }; extern ClassDefine KVDBClassBuilder; //// SQLDB class DBSessionClass : public ScriptClass { private: DB::SharedPointer session; public: explicit DBSessionClass(const Local& scriptObj, const DB::ConnParams& params); explicit DBSessionClass(const DB::ConnParams& params); ~DBSessionClass(); static DBSessionClass* constructor(const Arguments& args); Local query(const Arguments& args); Local exec(const Arguments& args); Local prepare(const Arguments& args); Local close(const Arguments& args); Local isOpen(const Arguments& args); }; extern ClassDefine DBSessionClassBuilder; class DBStmtClass : public ScriptClass { private: DB::SharedPointer stmt; public: explicit DBStmtClass(const Local& scriptObj, const DB::SharedPointer& stmt); explicit DBStmtClass(const DB::SharedPointer& stmt); ~DBStmtClass(); Local getAffectedRows(); Local getInsertId(); Local bind(const Arguments& args); Local execute(const Arguments& args); Local step(const Arguments& args); Local fetch(const Arguments& args); Local fetchAll(const Arguments& args); Local reset(const Arguments& args); Local reexec(const Arguments& args); Local clear(const Arguments& args); }; extern ClassDefine DBStmtClassBuilder;