transactd 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (218) hide show
  1. checksums.yaml +7 -0
  2. data/BUILD_UNIX-JA +174 -0
  3. data/BUILD_WIN-JA +256 -0
  4. data/CMakeLists.txt +96 -0
  5. data/COPYING +339 -0
  6. data/README +406 -0
  7. data/README-JA +424 -0
  8. data/bin/common/tdclc_32_1_0.dll +0 -0
  9. data/bin/common/tdclc_64_1_0.dll +0 -0
  10. data/build/common/check_for_link_iconv.cmake +73 -0
  11. data/build/common/copyifgreater.cmd +30 -0
  12. data/build/common/copyifgreater.js +290 -0
  13. data/build/common/get_boost_libs.cmake +106 -0
  14. data/build/common/get_ruby_path.cmake +115 -0
  15. data/build/common/options.cmake +127 -0
  16. data/build/common/smart_install.cmake +263 -0
  17. data/build/common/system.cmake +122 -0
  18. data/build/common/transactd.rc.in +52 -0
  19. data/build/common/transactd_cl_common.cmake +101 -0
  20. data/build/common/transactd_cl_output.cmake +93 -0
  21. data/build/common/transactd_common.cmake +237 -0
  22. data/build/common/transactd_required.cmake +28 -0
  23. data/build/swig/ruby/generate.cmake.in +35 -0
  24. data/build/swig/ruby/generate.cmd.in +19 -0
  25. data/build/swig/ruby/ruby.swg +101 -0
  26. data/build/swig/tdcl.i +188 -0
  27. data/build/tdclc/BUILDNUMBER.txt +1 -0
  28. data/build/tdclc/CMakeLists.txt +170 -0
  29. data/build/tdclc/tdclc_32.cbproj +181 -0
  30. data/build/tdclc/tdclc_64.cbproj +205 -0
  31. data/build/tdclcpp/BUILDNUMBER.txt +1 -0
  32. data/build/tdclcpp/CMakeLists.txt +142 -0
  33. data/build/tdclcpp/tdclcpp_bcb_32.cbproj +239 -0
  34. data/build/tdclcpp/tdclcpp_bcb_64.cbproj +304 -0
  35. data/build/tdclrb/BUILDNUMBER.txt +1 -0
  36. data/build/tdclrb/CMakeLists.txt +258 -0
  37. data/build/tdclrb/GEM_VERSION +3 -0
  38. data/build/tdclrb/bldgem/extconf.rb +123 -0
  39. data/build/tdclrb/gem/INSTALLLOG.win32 +9 -0
  40. data/build/tdclrb/gem/Makefile.win32-VS +65 -0
  41. data/build/tdclrb/gem/Makefile.win32-prebuilt +48 -0
  42. data/build/tdclrb/gem/detect.rb +31 -0
  43. data/build/tdclrb/gem/helper.rb +113 -0
  44. data/build/tdclrb/gem/transactd.rb +22 -0
  45. data/build/tdclrb/gem_output.cmake +44 -0
  46. data/source/bzs/db/IBlobBuffer.h +51 -0
  47. data/source/bzs/db/blobBuffer.h +177 -0
  48. data/source/bzs/db/blobStructs.h +85 -0
  49. data/source/bzs/db/engine/mysql/IReadRecords.h +52 -0
  50. data/source/bzs/db/engine/mysql/bookmark.h +195 -0
  51. data/source/bzs/db/engine/mysql/database.cpp +1882 -0
  52. data/source/bzs/db/engine/mysql/database.h +465 -0
  53. data/source/bzs/db/engine/mysql/dbManager.cpp +303 -0
  54. data/source/bzs/db/engine/mysql/dbManager.h +143 -0
  55. data/source/bzs/db/engine/mysql/errorMessage.cpp +75 -0
  56. data/source/bzs/db/engine/mysql/errorMessage.h +43 -0
  57. data/source/bzs/db/engine/mysql/fieldAccess.h +158 -0
  58. data/source/bzs/db/engine/mysql/mydebuglog.cpp +349 -0
  59. data/source/bzs/db/engine/mysql/mydebuglog.h +89 -0
  60. data/source/bzs/db/engine/mysql/mysqlInternal.h +171 -0
  61. data/source/bzs/db/engine/mysql/mysqlThd.cpp +169 -0
  62. data/source/bzs/db/engine/mysql/mysqlThd.h +35 -0
  63. data/source/bzs/db/engine/mysql/percentageKey.h +260 -0
  64. data/source/bzs/db/protocol/ICommandExecuter.h +49 -0
  65. data/source/bzs/db/protocol/hs/hsCommandExecuter.cpp +689 -0
  66. data/source/bzs/db/protocol/hs/hsCommandExecuter.h +228 -0
  67. data/source/bzs/db/protocol/tdap/btrDate.cpp +437 -0
  68. data/source/bzs/db/protocol/tdap/btrDate.h +227 -0
  69. data/source/bzs/db/protocol/tdap/client/bulkInsert.h +127 -0
  70. data/source/bzs/db/protocol/tdap/client/client.cpp +106 -0
  71. data/source/bzs/db/protocol/tdap/client/client.h +292 -0
  72. data/source/bzs/db/protocol/tdap/client/connMgr.cpp +144 -0
  73. data/source/bzs/db/protocol/tdap/client/connMgr.h +82 -0
  74. data/source/bzs/db/protocol/tdap/client/database.cpp +863 -0
  75. data/source/bzs/db/protocol/tdap/client/database.h +118 -0
  76. data/source/bzs/db/protocol/tdap/client/databaseFactory.cpp +100 -0
  77. data/source/bzs/db/protocol/tdap/client/dbDef.cpp +1640 -0
  78. data/source/bzs/db/protocol/tdap/client/dbDef.h +135 -0
  79. data/source/bzs/db/protocol/tdap/client/dllmain.cpp +434 -0
  80. data/source/bzs/db/protocol/tdap/client/errorMessage.cpp +92 -0
  81. data/source/bzs/db/protocol/tdap/client/errorMessage_ja.cpp +98 -0
  82. data/source/bzs/db/protocol/tdap/client/fieldDDF.cpp +174 -0
  83. data/source/bzs/db/protocol/tdap/client/fieldDDF.h +91 -0
  84. data/source/bzs/db/protocol/tdap/client/fileDDF.cpp +140 -0
  85. data/source/bzs/db/protocol/tdap/client/fileDDF.h +86 -0
  86. data/source/bzs/db/protocol/tdap/client/filter.cpp +527 -0
  87. data/source/bzs/db/protocol/tdap/client/filter.h +154 -0
  88. data/source/bzs/db/protocol/tdap/client/indexDDF.cpp +137 -0
  89. data/source/bzs/db/protocol/tdap/client/indexDDF.h +84 -0
  90. data/source/bzs/db/protocol/tdap/client/nsDatabase.cpp +724 -0
  91. data/source/bzs/db/protocol/tdap/client/nsDatabase.h +123 -0
  92. data/source/bzs/db/protocol/tdap/client/nsTable.cpp +899 -0
  93. data/source/bzs/db/protocol/tdap/client/nsTable.h +199 -0
  94. data/source/bzs/db/protocol/tdap/client/request.h +198 -0
  95. data/source/bzs/db/protocol/tdap/client/sharedData.cpp +58 -0
  96. data/source/bzs/db/protocol/tdap/client/sharedData.h +56 -0
  97. data/source/bzs/db/protocol/tdap/client/sqlBuilder.cpp +574 -0
  98. data/source/bzs/db/protocol/tdap/client/sqlBuilder.h +53 -0
  99. data/source/bzs/db/protocol/tdap/client/stringConverter.h +627 -0
  100. data/source/bzs/db/protocol/tdap/client/table.cpp +2613 -0
  101. data/source/bzs/db/protocol/tdap/client/table.h +221 -0
  102. data/source/bzs/db/protocol/tdap/client/trdboostapi.h +1096 -0
  103. data/source/bzs/db/protocol/tdap/client/trdboostapiInternal.h +179 -0
  104. data/source/bzs/db/protocol/tdap/client/trdclcppautolink.h +40 -0
  105. data/source/bzs/db/protocol/tdap/client/trnsctcl.def +11 -0
  106. data/source/bzs/db/protocol/tdap/myDateTime.cpp +500 -0
  107. data/source/bzs/db/protocol/tdap/mysql/characterset.cpp +184 -0
  108. data/source/bzs/db/protocol/tdap/mysql/characterset.h +60 -0
  109. data/source/bzs/db/protocol/tdap/mysql/databaseSchema.cpp +284 -0
  110. data/source/bzs/db/protocol/tdap/mysql/databaseSchema.h +53 -0
  111. data/source/bzs/db/protocol/tdap/mysql/debuglog.cpp +383 -0
  112. data/source/bzs/db/protocol/tdap/mysql/debuglog.h +106 -0
  113. data/source/bzs/db/protocol/tdap/mysql/recordsetReader.h +680 -0
  114. data/source/bzs/db/protocol/tdap/mysql/request.h +202 -0
  115. data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.cpp +1020 -0
  116. data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.h +141 -0
  117. data/source/bzs/db/protocol/tdap/tdapRequest.h +190 -0
  118. data/source/bzs/db/protocol/tdap/tdapSchema.cpp +295 -0
  119. data/source/bzs/db/protocol/tdap/tdapSchema.h +558 -0
  120. data/source/bzs/db/protocol/tdap/tdapcapi.h +423 -0
  121. data/source/bzs/db/transactd/appBuilderImple.h +55 -0
  122. data/source/bzs/db/transactd/appModule.cpp +183 -0
  123. data/source/bzs/db/transactd/appModule.h +80 -0
  124. data/source/bzs/db/transactd/connManager.cpp +201 -0
  125. data/source/bzs/db/transactd/connManager.h +60 -0
  126. data/source/bzs/db/transactd/connectionRecord.h +69 -0
  127. data/source/bzs/db/transactd/transactd.cpp +325 -0
  128. data/source/bzs/env/compiler.h +135 -0
  129. data/source/bzs/env/crosscompile.cpp +130 -0
  130. data/source/bzs/env/crosscompile.h +150 -0
  131. data/source/bzs/env/fileopen.h +36 -0
  132. data/source/bzs/env/mbcswchrLinux.cpp +40 -0
  133. data/source/bzs/env/mbcswchrLinux.h +88 -0
  134. data/source/bzs/env/tstring.h +183 -0
  135. data/source/bzs/example/changeSchema.cpp +117 -0
  136. data/source/bzs/example/changeSchema_c.cpp +78 -0
  137. data/source/bzs/example/connection_pool_c.cpp +171 -0
  138. data/source/bzs/example/createDatabase.cpp +305 -0
  139. data/source/bzs/example/createDatabase_c.cpp +202 -0
  140. data/source/bzs/example/deleteRecords.cpp +87 -0
  141. data/source/bzs/example/deleteRecords_c.cpp +57 -0
  142. data/source/bzs/example/dropDatabase.cpp +59 -0
  143. data/source/bzs/example/dropDatabase_c.cpp +34 -0
  144. data/source/bzs/example/insertRecords.cpp +212 -0
  145. data/source/bzs/example/insertRecords_c.cpp +153 -0
  146. data/source/bzs/example/readRecords.cpp +141 -0
  147. data/source/bzs/example/readRecords_c.cpp +107 -0
  148. data/source/bzs/example/updateRecords.cpp +99 -0
  149. data/source/bzs/example/updateRecords_c.cpp +71 -0
  150. data/source/bzs/example/update_with_transaction.cpp +104 -0
  151. data/source/bzs/example/update_with_transaction_c.cpp +80 -0
  152. data/source/bzs/netsvc/client/tcpClient.cpp +226 -0
  153. data/source/bzs/netsvc/client/tcpClient.h +489 -0
  154. data/source/bzs/netsvc/server/IAppModule.h +94 -0
  155. data/source/bzs/netsvc/server/iserver.h +65 -0
  156. data/source/bzs/netsvc/server/serverCpt.cpp +522 -0
  157. data/source/bzs/netsvc/server/serverCpt.h +88 -0
  158. data/source/bzs/netsvc/server/serverPipe.cpp +705 -0
  159. data/source/bzs/netsvc/server/serverPipe.h +96 -0
  160. data/source/bzs/netsvc/server/serverTpool.cpp +416 -0
  161. data/source/bzs/netsvc/server/serverTpool.h +84 -0
  162. data/source/bzs/rtl/benchmark.cpp +96 -0
  163. data/source/bzs/rtl/benchmark.h +65 -0
  164. data/source/bzs/rtl/datetime.cpp +375 -0
  165. data/source/bzs/rtl/datetime.h +53 -0
  166. data/source/bzs/rtl/debuglog.cpp +106 -0
  167. data/source/bzs/rtl/debuglog.h +97 -0
  168. data/source/bzs/rtl/exception.h +116 -0
  169. data/source/bzs/rtl/stl_uty.cpp +35 -0
  170. data/source/bzs/rtl/stl_uty.h +29 -0
  171. data/source/bzs/rtl/stringBuffers.cpp +101 -0
  172. data/source/bzs/rtl/stringBuffers.h +58 -0
  173. data/source/bzs/rtl/strtrim.cpp +135 -0
  174. data/source/bzs/rtl/strtrim.h +46 -0
  175. data/source/bzs/test/tdclatl/bench_tdclatl.js +445 -0
  176. data/source/bzs/test/tdclrb/bench_tdclcpp.rb +375 -0
  177. data/source/bzs/test/tdclrb/prepare.rb +226 -0
  178. data/source/bzs/test/tdclrb/transactd_datetime_spec.rb +172 -0
  179. data/source/bzs/test/tdclrb/transactd_kanjischema_spec.rb +208 -0
  180. data/source/bzs/test/tdclrb/transactd_spec.rb +1536 -0
  181. data/source/bzs/test/transactdBench/transactdBench.cpp +430 -0
  182. data/source/bzs/test/transactdBench/transactdBench2.cpp +342 -0
  183. data/source/bzs/test/trdclengn/test_trdclengn.cpp +2030 -0
  184. data/source/global/tdclatl/Database.cpp +503 -0
  185. data/source/global/tdclatl/Database.h +139 -0
  186. data/source/global/tdclatl/DbDef.cpp +242 -0
  187. data/source/global/tdclatl/DbDef.h +79 -0
  188. data/source/global/tdclatl/Field.cpp +92 -0
  189. data/source/global/tdclatl/Field.h +59 -0
  190. data/source/global/tdclatl/FieldDef.cpp +238 -0
  191. data/source/global/tdclatl/FieldDef.h +87 -0
  192. data/source/global/tdclatl/Flags.cpp +111 -0
  193. data/source/global/tdclatl/Flags.h +55 -0
  194. data/source/global/tdclatl/KeyDef.cpp +51 -0
  195. data/source/global/tdclatl/KeyDef.h +55 -0
  196. data/source/global/tdclatl/KeySegment.cpp +55 -0
  197. data/source/global/tdclatl/Table.cpp +600 -0
  198. data/source/global/tdclatl/Table.h +144 -0
  199. data/source/global/tdclatl/TableDef.cpp +291 -0
  200. data/source/global/tdclatl/TableDef.h +86 -0
  201. data/source/global/tdclatl/TdVersion.cpp +74 -0
  202. data/source/global/tdclatl/TdVersion.h +54 -0
  203. data/source/global/tdclatl/_IDatabaseEvents_CP.h +113 -0
  204. data/source/global/tdclatl/dllmain.cpp +30 -0
  205. data/source/global/tdclatl/dllmain.h +27 -0
  206. data/source/global/tdclatl/keySegment.h +57 -0
  207. data/source/global/tdclatl/resource.h +0 -0
  208. data/source/global/tdclatl/stdafx.cpp +2 -0
  209. data/source/global/tdclatl/stdafx.h +25 -0
  210. data/source/global/tdclatl/targetver.h +4 -0
  211. data/source/global/tdclatl/tdclatl.cpp +68 -0
  212. data/source/global/tdclatl/tdclatl.def +10 -0
  213. data/source/global/tdclatl/tdclatl.idl +1035 -0
  214. data/source/linux/charsetConvert.h +112 -0
  215. data/source/linux/linuxTypes.h +33 -0
  216. data/source/linux/tchar.h +428 -0
  217. data/transactd.gemspec +97 -0
  218. metadata +267 -0
@@ -0,0 +1,199 @@
1
+ #ifndef BZS_DB_PROTOCOL_TDAP_CLIENT_NSTABLE_H
2
+ #define BZS_DB_PROTOCOL_TDAP_CLIENT_NSTABLE_H
3
+ /* =================================================================
4
+ Copyright (C) 2000-2013 BizStation Corp All rights reserved.
5
+
6
+ This program is free software; you can redistribute it and/or
7
+ modify it under the terms of the GNU General Public License
8
+ as published by the Free Software Foundation; either version 2
9
+ of the License, or (at your option) any later version.
10
+
11
+ This program is distributed in the hope that it will be useful,
12
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ GNU General Public License for more details.
15
+
16
+ You should have received a copy of the GNU General Public License
17
+ along with this program; if not, write to the Free Software
18
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
19
+ 02111-1307, USA.
20
+ ================================================================= */
21
+
22
+ #include <bzs/env/tstring.h>
23
+ #include <bzs/db/protocol/tdap/tdapcapi.h>
24
+ #include <bzs/db/protocol/tdap/tdapSchema.h>
25
+ #include <bzs/rtl/exception.h>
26
+
27
+ namespace bzs
28
+ {
29
+ namespace db
30
+ {
31
+ namespace protocol
32
+ {
33
+ namespace tdap
34
+ {
35
+ namespace client
36
+ {
37
+
38
+ class nsdatabase;
39
+ class nstable;
40
+ class bulkInsert;
41
+
42
+ #define BULKBUFSIZE USHRT_MAX-1000
43
+
44
+
45
+
46
+ class AGRPACK nstable
47
+ {
48
+ friend class nsdatabase; // for destroy()
49
+ public:
50
+ enum eUpdateType{changeCurrentCc,changeCurrentNcc,changeInKey};
51
+ static const bool inkey = true;
52
+ private:
53
+ struct nstimpl* m_impl;
54
+
55
+
56
+ nstable(const nstable&);
57
+ const nstable& operator = (const nstable&);
58
+ void doUpdate(eUpdateType type);
59
+ ushort_td doInsert(bool ncc);
60
+ static TCHAR* getErrorMessage(int errorCode, _TCHAR* buf, size_t size);
61
+
62
+ protected:
63
+
64
+
65
+ ushort_td m_op;
66
+ void* m_pdata;
67
+ uint_td m_buflen;
68
+ uint_td m_datalen;
69
+ void* m_keybuf;
70
+ keylen_td m_keybuflen;
71
+ keylen_td m_keylen;
72
+ short_td m_stat;
73
+ char_td m_keynum;
74
+
75
+ union
76
+ {
77
+ struct
78
+ {
79
+ uchar_td m_read : 1;
80
+ uchar_td m_write : 1;
81
+ uchar_td m_insart : 1;
82
+ uchar_td m_delete : 1;
83
+ };
84
+ uchar_td m_curd;
85
+ };
86
+
87
+ virtual ~nstable();
88
+ const _TCHAR* uri() const ;
89
+ const uchar_td* posblk() const ;
90
+ void setIsOpen(bool v);
91
+ nsdatabase* nsdb() const ;
92
+ bulkInsert* bulkIns() const ;
93
+ virtual bool isUniqeKey(char_td keynum){return false;}//for chacek updates deletes at key
94
+ virtual void writeRecordData()=0;
95
+ virtual int onInsertBefore() {writeRecordData();return 0;};
96
+ virtual void onInsertAfter(int beforeResult);
97
+ virtual bool onUpdateCheck(eUpdateType type) {return true;};
98
+ virtual int onUpdateBefore() {writeRecordData();return 0;};
99
+ virtual void onUpdateAfter(int beforeResult) {};
100
+ virtual bool onDeleteCheck(bool inkey) {return true;};
101
+ virtual void doDel(bool inkey);
102
+ virtual keylen_td writeKeyData(){return 0;};
103
+ virtual void onReadAfter()=0;
104
+ virtual uint_td doGetWriteImageLen() {return m_buflen;};
105
+ virtual void doOpen(const _TCHAR* name, char_td mode, const _TCHAR* ownername);
106
+ virtual void doClose();
107
+ virtual void doCreateIndex(bool specifyKeyNum);
108
+ virtual uint_td doRecordCount(bool estimate, bool fromCurrent);
109
+ virtual short_td doBtrvErr(HWND hWnd, _TCHAR* retbuf);
110
+ virtual ushort_td doCommitBulkInsert(bool autoCommit);
111
+ inline void open(const _TCHAR* uri, char_td mode = 0, const _TCHAR* ownerName = NULL) {
112
+ doOpen(uri, mode, ownerName);}
113
+
114
+ /*
115
+ This method is ignore refarence count of nstable and force delete.
116
+ Use in nsdatabase::reset()
117
+ */
118
+ void destroy();
119
+ void setShared();
120
+
121
+ public:
122
+ explicit nstable(nsdatabase *pbe);
123
+ void addref(void);
124
+ void release();
125
+ int refCount() const;
126
+
127
+ short tableid() const ;
128
+ void setTableid(short v);
129
+ bool isOpen() const;
130
+ inline void setAccessRights(unsigned char curd) {m_curd = curd;};
131
+ inline const void* data() const {return m_pdata;}
132
+ inline void setData(void* v) {m_pdata = v;}
133
+ inline uint_td buflen() const {return m_buflen;}
134
+ inline void setBuflen(uint_td v) {m_buflen = v;}
135
+ inline uint_td datalen() const {return m_datalen;}
136
+ inline short_td stat() const {return m_stat;}
137
+ inline void setStat(short_td v) {m_stat = v;}
138
+ inline char_td keyNum() const {return m_keynum;}
139
+ inline void setKeyNum(char_td v) {m_keynum = v;}
140
+ inline bool canRead() const {return (bool)m_read;}
141
+ inline bool canWrite() const {return (bool)m_write;}
142
+ inline bool canInsert() const {return (bool)m_insart;}
143
+ inline bool canDelete() const {return (bool)m_delete;}
144
+ inline uint_td getWriteImageLen() {return doGetWriteImageLen();};
145
+ inline void close() {doClose();}
146
+ inline void update(eUpdateType type = changeCurrentCc) {doUpdate(type);}
147
+ inline void del(bool inkey=false) {doDel(inkey);}
148
+ inline ushort_td insert(bool ncc = false) {return doInsert(ncc);};
149
+ inline void createIndex(bool specifyKeyNum = false) {doCreateIndex(specifyKeyNum);}
150
+ void dropIndex(bool norenumber = false);
151
+ inline uint_td recordCount(bool estimate = true, bool fromCurrent = false) {return doRecordCount(estimate, fromCurrent);}
152
+ inline short_td tdapErr(HWND hWnd, _TCHAR* retbuf = NULL) {return doBtrvErr(hWnd, retbuf);}
153
+
154
+ void beginBulkInsert(int maxBuflen);
155
+ void abortBulkInsert();
156
+ inline ushort_td commitBulkInsert(bool autoCommit = false) {
157
+ return doCommitBulkInsert(autoCommit);}
158
+ void tdap(ushort_td op);
159
+ void seekFirst(ushort_td lockBias = 0);
160
+ void seekLast(ushort_td lockBias = 0);
161
+ void seekPrev(ushort_td lockBias = 0);
162
+ void seekNext(ushort_td lockBias = 0);
163
+ void seek(ushort_td lockBias = 0);
164
+ void seekGreater(bool orEqual, ushort_td lockBias = 0);
165
+ void seekLessThan(bool orEqual, ushort_td lockBias = 0);
166
+ void stepFirst(ushort_td lockBias = 0);
167
+ void stepLast(ushort_td lockBias = 0);
168
+ void stepPrev(ushort_td lockBias = 0);
169
+ void stepNext(ushort_td lockBias = 0);
170
+ bookmark_td bookmark();
171
+ void seekByBookmark(bookmark_td bm, ushort_td lockBias = 0);
172
+ void seekByBookmark();
173
+ percentage_td getPercentage();
174
+ percentage_td getPercentage(bookmark_td bm);
175
+ void seekByPercentage();
176
+ void seekByPercentage(percentage_td pc);
177
+ void setOwnerName(const _TCHAR* name , char_td enctype = 0);
178
+ void clearOwnerName();
179
+ ushort_td recordLength();
180
+ void stats(void* databuffer, uint_td buflen, bool estimate = true);
181
+ void unlock(bookmark_td bm = 0);
182
+ static _TCHAR* getFileName(const _TCHAR* uri, _TCHAR* filename);
183
+ static short_td tdapErr(HWND hWnd, short_td status, const _TCHAR* tableName = NULL,
184
+ _TCHAR* retbuf = NULL);
185
+ static void throwError(const _TCHAR* caption, short statusCode);
186
+ static _TCHAR* getDirURI(const _TCHAR* uri, _TCHAR* retbuf);
187
+ static bool existsFile(const _TCHAR* filename);
188
+ static bool test(nstable* p);
189
+
190
+ };
191
+
192
+
193
+ }// namespace client
194
+ }// namespace tdap
195
+ }// namespace protocol
196
+ }// namespace db
197
+ }// namespace bzs
198
+
199
+ #endif //BZS_DB_PROTOCOL_TDAP_CLIENT_NSTABLE_H
@@ -0,0 +1,198 @@
1
+ #ifndef BZS_DB_PROTOCOL_TDAP_CLIENT_REQUSET_H
2
+ #define BZS_DB_PROTOCOL_TDAP_CLIENT_REQUSET_H
3
+ /*=================================================================
4
+ Copyright (C) 2013 BizStation Corp All rights reserved.
5
+
6
+ This program is free software; you can redistribute it and/or
7
+ modify it under the terms of the GNU General Public License
8
+ as published by the Free Software Foundation; either version 2
9
+ of the License, or (at your option) any later version.
10
+
11
+ This program is distributed in the hope that it will be useful,
12
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ GNU General Public License for more details.
15
+
16
+ You should have received a copy of the GNU General Public License
17
+ along with this program; if not, write to the Free Software
18
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
19
+ 02111-1307, USA.
20
+ =================================================================*/
21
+
22
+ #include <bzs/db/protocol/tdap/tdapRequest.h>
23
+
24
+
25
+
26
+ namespace bzs
27
+ {
28
+ namespace netsvc{namespace client{class connection;}}
29
+
30
+
31
+ namespace db
32
+ {
33
+ namespace engine{namespace mysql{class table;}}
34
+
35
+ namespace protocol
36
+ {
37
+ namespace tdap
38
+ {
39
+ namespace client
40
+ {
41
+
42
+ class request : public bzs::db::protocol::tdap::request
43
+ {
44
+ public:
45
+ clientID* cid;
46
+
47
+ request():bzs::db::protocol::tdap::request()
48
+ ,cid(NULL){};
49
+
50
+ inline void parse(const char* p)
51
+ {
52
+ p += sizeof(unsigned int);
53
+ paramMask = *((uchar_td*)p);
54
+ p += sizeof(uchar_td);
55
+ op = *((ushort_td*)p);
56
+ p += sizeof(ushort_td);
57
+
58
+ if (P_MASK_POSBLK & paramMask)
59
+ {
60
+ memcpy(pbk, p, POSBLK_SIZE);
61
+ p += POSBLK_SIZE;
62
+ }
63
+ if (P_MASK_DATALEN & paramMask)
64
+ {
65
+ uint_td tmp = *((uint_td*)p);
66
+ memset(data, 0, *datalen);
67
+ if (*datalen < tmp)
68
+ result = STATUS_BUFFERTOOSMALL;
69
+ else
70
+ *datalen = tmp;
71
+ p += sizeof(uint_td);
72
+ }
73
+ if (P_MASK_EX_SENDLEN & paramMask)
74
+ {
75
+ memcpy(data, p, (*(ushort_td*)p));
76
+ p += (*(ushort_td*)p);
77
+
78
+ }
79
+ else if (P_MASK_DATA & paramMask)
80
+ {
81
+ memcpy(data, p, *datalen);
82
+ p += *datalen;
83
+ }
84
+ if (P_MASK_KEYBUF & paramMask)
85
+ {
86
+ if (keylen < *((keylen_td*)p))
87
+ {
88
+ result = STATUS_KEYBUFFERTOOSMALL;
89
+ return ;
90
+ }
91
+ memset(keybuf, 0, keylen);
92
+ keylen = *((keylen_td*)p);
93
+ p += sizeof(keylen_td);
94
+ memcpy(keybuf, p, keylen);
95
+ p += keylen;
96
+ }
97
+ if (P_MASK_KEYNUM & paramMask)
98
+ {
99
+ keyNum = *((char_td*)p);
100
+ p += sizeof(char_td);
101
+ }
102
+ if (paramMask & P_MASK_BLOBBODY)
103
+ {
104
+ blobHeader = (const bzs::db::blobHeader*)p;
105
+ if (blobHeader->rows)
106
+ blobHeader->resetCur();
107
+ }
108
+ else
109
+ blobHeader = NULL;
110
+
111
+ }
112
+ inline unsigned int serialize(char* buf)
113
+ {
114
+ char* p = buf;
115
+ unsigned int totallen = sizeof(unsigned int) + sizeof(uchar_td)
116
+ + sizeof(ushort_td) + CLIENTID_SIZE;
117
+ if (P_MASK_POSBLK & paramMask)
118
+ totallen += POSBLK_SIZE;
119
+
120
+ if (P_MASK_EX_SENDLEN & paramMask)
121
+ totallen += *((ushort_td*)data);
122
+ else if (P_MASK_DATA & paramMask)
123
+ totallen += *datalen;
124
+
125
+ if (P_MASK_DATALEN & paramMask)
126
+ totallen += sizeof(uint_td);
127
+ if (P_MASK_KEYBUF & paramMask)
128
+ totallen += keylen+sizeof(keylen_td) + 1;//+1 is null terminate byte
129
+ if (P_MASK_KEYNUM & paramMask)
130
+ totallen += sizeof(char_td);
131
+ memcpy(p, &totallen, sizeof(unsigned int));
132
+ p += sizeof(unsigned int);
133
+
134
+ memcpy(p, &paramMask, sizeof(uchar_td));
135
+ p += sizeof(uchar_td);
136
+
137
+ memcpy(p, &op, sizeof(ushort_td));
138
+ p += sizeof(ushort_td);
139
+
140
+ if (P_MASK_POSBLK & paramMask)
141
+ {
142
+ memcpy(p, pbk, POSBLK_SIZE);
143
+ p += POSBLK_SIZE;
144
+ }
145
+
146
+ if (P_MASK_DATALEN & paramMask)
147
+ {
148
+ memcpy(p, datalen, sizeof(uint_td));
149
+ p += sizeof(uint_td);
150
+ }
151
+
152
+ if (P_MASK_EX_SENDLEN & paramMask)
153
+ {
154
+ memcpy(p, data, *((ushort_td*)data));
155
+ p += *((ushort_td*)data);
156
+ }
157
+ else if (P_MASK_DATA & paramMask)
158
+ {
159
+ memcpy(p, data, *datalen);
160
+ p += *datalen;
161
+ }
162
+
163
+ if (P_MASK_KEYBUF & paramMask)
164
+ {
165
+ memcpy(p, &keylen, sizeof(keylen_td));
166
+ p += sizeof(keylen_td);
167
+
168
+ memcpy(p, keybuf, keylen);
169
+ p += keylen;
170
+ *p = 0x00;
171
+ ++p;
172
+ }
173
+ if (P_MASK_KEYNUM & paramMask)
174
+ {
175
+ memcpy(p, &keyNum, sizeof(char_td));
176
+ p += sizeof(char_td);
177
+ }
178
+
179
+ memcpy(p, &cid->id, CLIENTID_SIZE);
180
+ p += CLIENTID_SIZE;
181
+
182
+ return (unsigned int)(p - buf);
183
+ }
184
+
185
+
186
+
187
+
188
+
189
+ };
190
+
191
+ }//namespace client
192
+ }//namespace protocol
193
+ }//namespace tdap
194
+ }//namespace db
195
+ }//namespace bzs
196
+
197
+
198
+ #endif //BZS_DB_PROTOCOL_TDAP_CLIENT_REQUSET_H
@@ -0,0 +1,58 @@
1
+ /*=================================================================
2
+ Copyright (C) 2012 2013 BizStation Corp All rights reserved.
3
+
4
+ This program is free software; you can redistribute it and/or
5
+ modify it under the terms of the GNU General Public License
6
+ as published by the Free Software Foundation; either version 2
7
+ of the License, or (at your option) any later version.
8
+
9
+ This program is distributed in the hope that it will be useful,
10
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+ GNU General Public License for more details.
13
+
14
+ You should have received a copy of the GNU General Public License
15
+ along with this program; if not, write to the Free Software
16
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
17
+ 02111-1307, USA.
18
+ =================================================================*/
19
+ #pragma hdrstop
20
+ #include "sharedData.h"
21
+
22
+ #pragma package(smart_init)
23
+
24
+
25
+ namespace bzs
26
+ {
27
+ namespace db
28
+ {
29
+ namespace protocol
30
+ {
31
+ namespace tdap
32
+ {
33
+ namespace client
34
+ {
35
+
36
+
37
+ static nsdatabase* g_engins[MAX_BTRENGIN]={0};
38
+
39
+ nsdatabase** enginsInternal()
40
+ {
41
+ return g_engins;
42
+ }
43
+
44
+ #ifdef ARBTREGN_SHARED_DLL
45
+ nsdatabase** enginsShared()
46
+ {
47
+ return g_engins;
48
+ }
49
+ #endif
50
+
51
+ EnginsFunc engins=enginsInternal;
52
+
53
+
54
+ }//namespace client
55
+ }//namespace tdap
56
+ }//namespace protocol
57
+ }//namespace db
58
+ }//namespace bzs
@@ -0,0 +1,56 @@
1
+ #ifndef BZS_DB_PROTOCOL_TDAP_CLIENT_SHAREDDATA_H
2
+ #define BZS_DB_PROTOCOL_TDAP_CLIENT_SHAREDDATA_H
3
+ /*=================================================================
4
+ Copyright (C) 2012 2013 BizStation Corp All rights reserved.
5
+
6
+ This program is free software; you can redistribute it and/or
7
+ modify it under the terms of the GNU General Public License
8
+ as published by the Free Software Foundation; either version 2
9
+ of the License, or (at your option) any later version.
10
+
11
+ This program is distributed in the hope that it will be useful,
12
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ GNU General Public License for more details.
15
+
16
+ You should have received a copy of the GNU General Public License
17
+ along with this program; if not, write to the Free Software
18
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
19
+ 02111-1307, USA.
20
+ =================================================================*/
21
+ #include <bzs/env/compiler.h>
22
+
23
+ namespace bzs
24
+ {
25
+ namespace db
26
+ {
27
+ namespace protocol
28
+ {
29
+ namespace tdap
30
+ {
31
+ namespace client
32
+ {
33
+
34
+
35
+ #define MAX_BTRENGIN 50
36
+
37
+ class nsdatabase;
38
+ typedef nsdatabase** (*EnginsFunc)();
39
+
40
+ #ifdef ARBTREGN_PKG
41
+ PACKAGE void registEnginsPtr(EnginsFunc func);//If use shared dll then you need Call this function. Implemant at trdclengne
42
+ #else
43
+ PACKAGE_IMPORT void registEnginsPtr(EnginsFunc func);
44
+ #ifdef ARBTREGN_SHARED_DLL
45
+ PACKAGE nsdatabase** enginsShared();
46
+ #else
47
+ PACKAGE_IMPORT nsdatabase** enginsShared(); //Implemant at ARBtEgn_Shared.dll
48
+ #endif
49
+ #endif
50
+
51
+ }//namespace client
52
+ }//namespace tdap
53
+ }//namespace protocol
54
+ }//namespace db
55
+ }//namespace bzs
56
+ #endif//BZS_DB_PROTOCOL_TDAP_CLIENT_SHAREDDATA_H