Skip to content

Commit bc119e8

Browse files
author
ubuntu14
committed
modify db module
1 parent 8bd3101 commit bc119e8

File tree

28 files changed

+332
-154
lines changed

28 files changed

+332
-154
lines changed

app/redis_tools/redis_builder/redis_builder_vc2012.vcxproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@
229229
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDll|Win32'">
230230
<ClCompile>
231231
<AdditionalIncludeDirectories>..\..\..\lib_acl_cpp\include;..\..\..\lib_acl\include;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
232-
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;ACL_CPP_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
232+
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;ACL_CPP_DLL;ACL_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
233233
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
234234
<PrecompiledHeader>Create</PrecompiledHeader>
235235
<WarningLevel>Level3</WarningLevel>
@@ -279,7 +279,7 @@ copy ..\..\..\dist\lib\win32\lib_protocol.dll $(OutDir) /Y</Command>
279279
<ClCompile>
280280
<Optimization>Disabled</Optimization>
281281
<AdditionalIncludeDirectories>..\..\..\lib_acl_cpp\include;..\..\..\lib_acl\include;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
282-
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;ACL_CPP_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
282+
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;ACL_CPP_DLL;ACL_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
283283
<MinimalRebuild>true</MinimalRebuild>
284284
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
285285
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>

app/wizard/tmpl/http/http_servlet.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ bool http_servlet::doPost(acl::HttpServletRequest& req,
5151

5252
res.setContentType("text/xml; charset=utf-8") // 设置响应字符集
5353
.setKeepAlive(req.isKeepAlive()) // 设置是否保持长连接
54+
.setContentEncoding(true) // 自动支持压缩传输
5455
.setChunkedTransferEncoding(true); // 采用 chunk 传输方式
5556

5657
const char* param1 = req.getParameter("name1");

lib_acl/src/stdlib/sys/acl_env.c

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,15 @@ void acl_clean_env(char **preserve_list)
4343
#define STRING_AND_LENGTH(x, y) (x), (ssize_t) (y)
4444

4545
save_list = acl_argv_alloc(10);
46-
for (cpp = preserve_list; *cpp; cpp++)
46+
for (cpp = preserve_list; *cpp; cpp++) {
4747
if ((eq = strchr(*cpp, '=')) != 0)
48-
acl_argv_addn(save_list, STRING_AND_LENGTH(*cpp, eq - *cpp),
49-
STRING_AND_LENGTH(eq + 1, strlen(eq + 1)), (char *) 0);
48+
acl_argv_addn(save_list,
49+
STRING_AND_LENGTH(*cpp, eq - *cpp),
50+
STRING_AND_LENGTH(eq + 1, strlen(eq + 1)),
51+
(char *) 0);
5052
else if ((value = acl_safe_getenv(*cpp)) != 0)
5153
acl_argv_add(save_list, *cpp, value, (char *) 0);
54+
}
5255

5356
/*
5457
* Truncate the process environment, if available. On some systems
@@ -66,7 +69,8 @@ void acl_clean_env(char **preserve_list)
6669
#elif defined(ACL_WINDOWS)
6770
if (!SetEnvironmentVariable(cpp[0], cpp[1]))
6871
#endif
69-
acl_msg_error("setenv(%s, %s): %s", cpp[0], cpp[1], acl_last_serror());
72+
acl_msg_error("setenv(%s, %s): %s",
73+
cpp[0], cpp[1], acl_last_serror());
7074

7175
/*
7276
* Cleanup.
@@ -143,7 +147,8 @@ int acl_putenv(char *str)
143147
}
144148
if (!SetEnvironmentVariable(argv->argv[0], argv->argv[1])) {
145149
acl_msg_error("%s(%d): putenv(%s, %s) error(%s)",
146-
myname, __LINE__, argv->argv[0], argv->argv[1], acl_last_serror());
150+
myname, __LINE__, argv->argv[0],
151+
argv->argv[1], acl_last_serror());
147152
return (-1);
148153
}
149154
return (0);
@@ -192,7 +197,8 @@ const char *acl_getenv_list(void)
192197
ACL_VSTRING_TERMINATE(buf);
193198
return (acl_vstring_str(buf));
194199
#else
195-
static acl_pthread_key_t buf_key = (acl_pthread_key_t) ACL_TLS_OUT_OF_INDEXES;
200+
static acl_pthread_key_t buf_key =
201+
(acl_pthread_key_t) ACL_TLS_OUT_OF_INDEXES;
196202
ACL_VSTRING *buf;
197203
extern char **environ;
198204
char **pptr = environ;
@@ -216,6 +222,7 @@ const char *acl_getenv_list(void)
216222
acl_vstring_strcat(buf, *pptr);
217223
pptr++;
218224
}
225+
219226
return (acl_vstring_str(buf));
220227
#endif
221228
}

lib_acl_cpp/changes.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
�޸���ʷ�б���
22

33
------------------------------------------------------------------------
4+
348) 2015.8.20
5+
348.1) compile: zlib_stream ���ڲ�ʹ���˶�̬���� zlib ��ķ�ʽ��
6+
47
347) 2015.8.19
58
347.1) feature: db_handle/db_mysql ֧�������ύ�ӿ�
69

lib_acl_cpp/include/acl_cpp/db/db_handle.hpp

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -302,16 +302,16 @@ class ACL_CPP_API db_handle : public connect_client
302302
virtual bool close() = 0;
303303

304304
/**
305-
* 纯虚接口,子类必须实现此接口用于执行 SQL 语句
306-
* @param sql {const char*} 标准的 SQL 语句,非空,并且一定得要注册该
305+
* 纯虚接口,子类必须实现此接口用于执行 SELECT SQL 语句
306+
* @param sql {const char*} 标准的 SQL 语句,非空,并且一定得要注意该
307307
* SQL 语句必须经过转义处理,以防止 SQL 注入攻击
308308
* @return {bool} 执行是否成功
309309
*/
310310
virtual bool sql_select(const char* sql) = 0;
311311

312312
/**
313-
* 纯虚接口,子类必须实现此接口用于执行 SQL 语句
314-
* @param sql {const char*} 标准的 SQL 语句,非空,并且一定得要注册该
313+
* 纯虚接口,子类必须实现此接口用于执行 INSERT/UPDATE/DELETE SQL 语句
314+
* @param sql {const char*} 标准的 SQL 语句,非空,并且一定得要注意该
315315
* SQL 语句必须经过转义处理,以防止 SQL 注入攻击
316316
* @return {bool} 执行是否成功
317317
*/
@@ -331,15 +331,17 @@ class ACL_CPP_API db_handle : public connect_client
331331

332332
/**
333333
* 更安全易用的查询过程,调用此函数功能等同于 sql_select,只是查询
334-
* 对象 query 构建的 sql 语句是安全的,可以防止 sql 注入
334+
* 对象 query 构建的 sql 语句是安全的,可以防止 sql 注入,该方法
335+
* 执行 SELECT SQL 语句
335336
* @param query {query&}
336337
* @return {bool} 执行是否成功
337338
*/
338339
bool exec_select(query& query);
339340

340341
/**
341342
* 更安全易用的更新过程,调用此函数功能等同于 sql_update,只是查询
342-
* 对象 query 构建的 sql 语句是安全的,可以防止 sql 注入
343+
* 对象 query 构建的 sql 语句是安全的,可以防止 sql 注入,该方法
344+
* 执行 INSERT/UPDATE/DELETE SQL 语句
343345
* @param query {query&}
344346
* @return {bool} 执行是否成功
345347
*/

lib_acl_cpp/include/acl_cpp/db/db_mysql.hpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -86,16 +86,16 @@ class ACL_CPP_API db_mysql : public db_handle
8686

8787
/**
8888
* 基类 db_handle 的纯虚接口
89-
* @param sql {const char*} 标准的 SQL 语句,非空,并且一定得要注册该
90-
* SQL 语句必须经过转义处理,以防止 SQL 注入攻击
89+
* @param sql {const char*} 标准的 SELECT SQL 语句,非空,并且一定
90+
* 得要注意该 SQL 语句必须经过转义处理,以防止 SQL 注入攻击
9191
* @return {bool} 执行是否成功
9292
*/
9393
bool sql_select(const char* sql);
9494

9595
/**
9696
* 基类 db_handle 的纯虚接口
97-
* @param sql {const char*} 标准的 SQL 语句,非空,并且一定得要注册该
98-
* SQL 语句必须经过转义处理,以防止 SQL 注入攻击
97+
* @param sql {const char*} 标准的 INSERT/UPDATE/DELETE SQL 语句,
98+
* 并且一定得要注意该 SQL 语句必须经过转义处理,以防止 SQL 注入攻击
9999
* @return {bool} 执行是否成功
100100
*/
101101
bool sql_update(const char* sql);

lib_acl_cpp/include/acl_cpp/db/db_sqlite.hpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -112,16 +112,16 @@ class ACL_CPP_API db_sqlite : public db_handle
112112

113113
/**
114114
* 基类 db_handle 的纯虚接口
115-
* @param sql {const char*} 标准的 SQL 语句,非空,并且一定得要注册该
116-
* SQL 语句必须经过转义处理,以防止 SQL 注入攻击
115+
* @param sql {const char*} 标准的 SELECT SQL 语句,并且一定得要
116+
* 注意该 SQL 语句必须经过转义处理,以防止 SQL 注入攻击
117117
* @return {bool} 执行是否成功
118118
*/
119119
bool sql_select(const char* sql);
120120

121121
/**
122122
* 基类 db_handle 的纯虚接口
123-
* @param sql {const char*} 标准的 SQL 语句,非空,并且一定得要注册该
124-
* SQL 语句必须经过转义处理,以防止 SQL 注入攻击
123+
* @param sql {const char*} 标准的 INSERT/UPDATE/DELETE SQL 语句,
124+
* 并且一定得要注意该 SQL 语句必须经过转义处理,以防止 SQL 注入攻击
125125
* @return {bool} 执行是否成功
126126
*/
127127
bool sql_update(const char* sql);

lib_acl_cpp/include/acl_cpp/redis/redis_string.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -240,8 +240,8 @@ class ACL_CPP_API redis_string : virtual public redis_command
240240
* @return {bool} 操作是否成功
241241
* if the command was executed correctly
242242
*/
243-
bool setbit(const char* key, unsigned offset, bool bit);
244-
bool setbit(const char* key, size_t len, unsigned offset, bool bit);
243+
bool setbit_(const char* key, unsigned offset, bool bit);
244+
bool setbit_(const char* key, size_t len, unsigned offset, bool bit);
245245

246246
/**
247247
* 对 key 所储存的字符串值,获取指定偏移量上的位(bit),当 offset 比字符串值

lib_acl_cpp/include/acl_cpp/stdlib/zlib_stream.hpp

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,15 @@ class ACL_CPP_API zlib_stream : public pipe_stream
166166
*/
167167
bool zip_reset();
168168

169+
/**
170+
* 在压缩过程中可使用此函数计算数据的 crc32 校验值
171+
* @param n {unsigned} 上次计算的校验和值,第一次时可写 0
172+
* @param buf {const void*} 需要校验的数据地址,第一次使用时写 NULL
173+
* @param dlen {size_t} buf 数据的长度,第一次使用时写 0
174+
* @return {unsinged} 本次计算的校验和值
175+
*/
176+
unsigned crc32_update(unsigned n, const void* buf, size_t dlen);
177+
169178
/**
170179
* 开始解压缩过程,如果采用流式解压缩方式,则调用顺序必须是:
171180
* unzip_begin->unzip_update->unzip_finish,如果中间任何一个
@@ -224,6 +233,17 @@ class ACL_CPP_API zlib_stream : public pipe_stream
224233
return zstream_;
225234
}
226235

236+
/**
237+
* 当采用动态加载方式加载动态库时,可以使用此函数设置动态库的加载全路径
238+
*/
239+
static void set_loadpath(const char* path);
240+
241+
/**
242+
* 当设置了动态库的动态加载全路径时,可以通过本函数获得动态库加载全路径
243+
* @return {const char*} 当未设置时则返回 NULL
244+
*/
245+
static const char* get_loadpath();
246+
227247
///////////////////////////////////////////////////////////////
228248

229249
bool pipe_zip_begin(zlib_level_t level = zlib_default,

lib_acl_cpp/lib_acl_cpp_vc2003.vcproj

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
Name="VCCLCompilerTool"
2222
Optimization="0"
2323
AdditionalIncludeDirectories=".\include;..\lib_protocol\include;..\lib_acl\include;..\include\sqlite;..\include\zlib;..\include\mysql;..\include"
24-
PreprocessorDefinitions="WIN32;_DEBUG;_LIB;USE_WIN_ICONV"
24+
PreprocessorDefinitions="WIN32;_DEBUG;_LIB;USE_WIN_ICONV;HAS_ZLIB_DLL;HAS_MYSQL_DLL"
2525
MinimalRebuild="TRUE"
2626
BasicRuntimeChecks="3"
2727
RuntimeLibrary="1"
@@ -69,7 +69,7 @@ copy $(TargetName).pdb ..\dist\lib\win32\$(TargetName).pdb /Y
6969
<Tool
7070
Name="VCCLCompilerTool"
7171
AdditionalIncludeDirectories=".\include;..\lib_protocol\include;..\lib_acl\include;..\include\sqlite;..\include\zlib;..\include\mysql;..\include"
72-
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;USE_WIN_ICONV"
72+
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;USE_WIN_ICONV;HAS_ZLIB_DLL;HAS_MYSQL_DLL"
7373
RuntimeLibrary="0"
7474
UsePrecompiledHeader="3"
7575
PrecompiledHeaderThrough="acl_stdafx.hpp"
@@ -708,19 +708,19 @@ copy $(TargetName).pdb ..\dist\lib\win32\$(TargetName).pdb /Y
708708
RelativePath=".\src\db\mysql_conf.cpp">
709709
</File>
710710
<File
711-
RelativePath=".\src\db\mysql_pool.cpp">
711+
RelativePath=".\src\db\mysql_manager.cpp">
712712
</File>
713713
<File
714-
RelativePath=".\src\db\mysql_manager.cpp">
714+
RelativePath=".\src\db\mysql_pool.cpp">
715715
</File>
716716
<File
717717
RelativePath=".\src\db\query.cpp">
718718
</File>
719719
<File
720-
RelativePath=".\src\db\sqlite_pool.cpp">
720+
RelativePath=".\src\db\sqlite_manager.cpp">
721721
</File>
722722
<File
723-
RelativePath=".\src\db\sqlite_manager.cpp">
723+
RelativePath=".\src\db\sqlite_pool.cpp">
724724
</File>
725725
</Filter>
726726
<Filter
@@ -1251,19 +1251,19 @@ copy $(TargetName).pdb ..\dist\lib\win32\$(TargetName).pdb /Y
12511251
RelativePath=".\include\acl_cpp\db\mysql_conf.hpp">
12521252
</File>
12531253
<File
1254-
RelativePath=".\include\acl_cpp\db\mysql_pool.hpp">
1254+
RelativePath=".\include\acl_cpp\db\mysql_manager.hpp">
12551255
</File>
12561256
<File
1257-
RelativePath=".\include\acl_cpp\db\mysql_manager.hpp">
1257+
RelativePath=".\include\acl_cpp\db\mysql_pool.hpp">
12581258
</File>
12591259
<File
12601260
RelativePath=".\include\acl_cpp\db\query.hpp">
12611261
</File>
12621262
<File
1263-
RelativePath=".\include\acl_cpp\db\sqlite_pool.hpp">
1263+
RelativePath=".\include\acl_cpp\db\sqlite_manager.hpp">
12641264
</File>
12651265
<File
1266-
RelativePath=".\include\acl_cpp\db\sqlite_manager.hpp">
1266+
RelativePath=".\include\acl_cpp\db\sqlite_pool.hpp">
12671267
</File>
12681268
</Filter>
12691269
<Filter

0 commit comments

Comments
 (0)