Skip to content

Commit d3696d1

Browse files
committed
适配新版本
1 parent 6b75d41 commit d3696d1

File tree

2 files changed

+46
-35
lines changed

2 files changed

+46
-35
lines changed

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,9 @@
3030
*.exe
3131
*.out
3232
*.app
33+
34+
# Build Files
35+
build/
36+
37+
# CovScript Headers
38+
include/covscript

sqlite.cpp

Lines changed: 40 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -18,24 +18,22 @@
1818
* Github: https://github.com/mikecovlee
1919
*/
2020
#include <sqlite/sqlite.hpp>
21-
#include <covscript/cni.hpp>
2221
#include <covscript/extension.hpp>
2322

24-
static cs::extension sqlite_ext;
25-
static cs::extension sqlite_stmt_ext;
26-
static cs::extension_t sqlite_ext_shared = cs::make_shared_namespace(sqlite_ext);
27-
static cs::extension_t sqlite_stmt_ext_shared = cs::make_shared_namespace(sqlite_stmt_ext);
23+
static cs::namespace_t sqlite_db_ext=cs::make_shared_namespace<cs::name_space>();
24+
static cs::namespace_t sqlite_stmt_ext=cs::make_shared_namespace<cs::name_space>();
25+
2826
namespace cs_impl {
2927
template<>
30-
cs::extension_t &get_ext<cs_impl::sqlite>()
28+
cs::namespace_t &get_ext<cs_impl::sqlite>()
3129
{
32-
return sqlite_ext_shared;
30+
return sqlite_db_ext;
3331
}
3432

3533
template<>
36-
cs::extension_t &get_ext<cs_impl::sqlite::statement>()
34+
cs::namespace_t &get_ext<cs_impl::sqlite::statement>()
3735
{
38-
return sqlite_stmt_ext_shared;
36+
return sqlite_stmt_ext;
3937
}
4038

4139
template<>
@@ -147,34 +145,41 @@ namespace sqlite_cs_ext {
147145
return db.prepare(sql);
148146
}
149147

150-
void init()
151-
{
152-
sqlite_ext.add_var("statement", var::make_protect<extension_t>(sqlite_stmt_ext_shared));
153-
sqlite_ext.add_var("integer", var::make_constant<sqlite::data_type>(sqlite::data_type::integer));
154-
sqlite_ext.add_var("real", var::make_constant<sqlite::data_type>(sqlite::data_type::real));
155-
sqlite_ext.add_var("text", var::make_constant<sqlite::data_type>(sqlite::data_type::text));
156-
sqlite_ext.add_var("open", var::make_protect<callable>(cni(open)));
157-
sqlite_ext.add_var("prepare", var::make_protect<callable>(cni(prepare)));
158-
sqlite_stmt_ext.add_var("done", var::make_protect<callable>(cni(done)));
159-
sqlite_stmt_ext.add_var("reset", var::make_protect<callable>(cni(reset)));
160-
sqlite_stmt_ext.add_var("exec", var::make_protect<callable>(cni(exec)));
161-
sqlite_stmt_ext.add_var("column_count", var::make_protect<callable>(cni(column_count)));
162-
sqlite_stmt_ext.add_var("column_type", var::make_protect<callable>(cni(column_type)));
163-
sqlite_stmt_ext.add_var("column_name", var::make_protect<callable>(cni(column_name)));
164-
sqlite_stmt_ext.add_var("column_decltype", var::make_protect<callable>(cni(column_decltype)));
165-
sqlite_stmt_ext.add_var("column_integer", var::make_protect<callable>(cni(column_integer)));
166-
sqlite_stmt_ext.add_var("column_real", var::make_protect<callable>(cni(column_real)));
167-
sqlite_stmt_ext.add_var("column_text", var::make_protect<callable>(cni(column_text)));
168-
sqlite_stmt_ext.add_var("bind_param_count", var::make_protect<callable>(cni(bind_param_count)));
169-
sqlite_stmt_ext.add_var("bind_integer", var::make_protect<callable>(cni(bind_integer)));
170-
sqlite_stmt_ext.add_var("bind_real", var::make_protect<callable>(cni(bind_real)));
171-
sqlite_stmt_ext.add_var("bind_text", var::make_protect<callable>(cni(bind_text)));
172-
sqlite_stmt_ext.add_var("clear_bindings", var::make_protect<callable>(cni(clear_bindings)));
148+
void init(name_space* ns)
149+
{
150+
(*ns)
151+
.add_var("db", make_namespace(sqlite_db_ext))
152+
.add_var("statement", make_namespace(sqlite_stmt_ext))
153+
.add_var("integer", var::make_constant<sqlite::data_type>(sqlite::data_type::integer))
154+
.add_var("real", var::make_constant<sqlite::data_type>(sqlite::data_type::real))
155+
.add_var("text", var::make_constant<sqlite::data_type>(sqlite::data_type::text))
156+
.add_var("open", make_cni(open))
157+
.add_var("prepare", make_cni(prepare));
158+
(*sqlite_db_ext)
159+
.add_var("integer", var::make_constant<sqlite::data_type>(sqlite::data_type::integer))
160+
.add_var("real", var::make_constant<sqlite::data_type>(sqlite::data_type::real))
161+
.add_var("text", var::make_constant<sqlite::data_type>(sqlite::data_type::text))
162+
.add_var("prepare", make_cni(prepare));
163+
(*sqlite_stmt_ext)
164+
.add_var("done", make_cni(done))
165+
.add_var("reset", make_cni(reset))
166+
.add_var("exec", make_cni(exec))
167+
.add_var("column_count", make_cni(column_count))
168+
.add_var("column_type", make_cni(column_type))
169+
.add_var("column_name", make_cni(column_name))
170+
.add_var("column_decltype", make_cni(column_decltype))
171+
.add_var("column_integer", make_cni(column_integer))
172+
.add_var("column_real", make_cni(column_real))
173+
.add_var("column_text", make_cni(column_text))
174+
.add_var("bind_param_count", make_cni(bind_param_count))
175+
.add_var("bind_integer", make_cni(bind_integer))
176+
.add_var("bind_real", make_cni(bind_real))
177+
.add_var("bind_text", make_cni(bind_text))
178+
.add_var("clear_bindings", make_cni(clear_bindings));
173179
}
174180
}
175181

176-
cs::extension *cs_extension()
182+
void cs_extension_main(cs::name_space* ns)
177183
{
178-
sqlite_cs_ext::init();
179-
return &sqlite_ext;
184+
sqlite_cs_ext::init(ns);
180185
}

0 commit comments

Comments
 (0)