transactd 1.2.0 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/BUILD_UNIX-JA +46 -67
- data/BUILD_WIN-JA +106 -63
- data/CMakeLists.txt +40 -15
- data/README +219 -75
- data/README-JA +207 -76
- data/README_ORMSRCGEN +118 -0
- data/README_ORMSRCGEN-JA +115 -0
- data/bin/common/tdclc_32_2_0.dll +0 -0
- data/bin/common/tdclc_64_2_0.dll +0 -0
- data/build/common/check_for_link_iconv.cmake +18 -14
- data/build/common/create_symlink.cmake.in +25 -0
- data/build/common/get_boost_libs.cmake +23 -23
- data/build/common/options.cmake +0 -66
- data/build/common/smart_install.cmake +3 -3
- data/build/common/transactd.rc.in +15 -5
- data/build/common/transactd_cl_common.cmake +37 -18
- data/build/common/transactd_cl_output.cmake +55 -13
- data/build/common/transactd_common.cmake +108 -31
- data/build/swig/php/generate.cmake.in +15 -17
- data/build/swig/php/generate.cmd.in +15 -9
- data/build/swig/php/php.swg +124 -82
- data/build/swig/php/transactd.no_yield.php +4494 -0
- data/build/swig/php/transactd.no_yield.php.git.patch +685 -0
- data/build/swig/php/transactd.no_yield.php.patch +685 -0
- data/build/swig/php/transactd.yield.php +4461 -0
- data/build/swig/php/transactd.yield.php.git.patch +652 -0
- data/build/swig/php/transactd.yield.php.patch +652 -0
- data/build/swig/referencecounter.h +79 -0
- data/build/swig/ruby/ruby.swg +226 -76
- data/build/swig/ruby/threadBlockRegionWrapper.h +71 -0
- data/build/swig/ruby/without_gvl.swg +87 -0
- data/build/swig/tdcl.i +659 -170
- data/build/swig/validatablepointer.h +91 -0
- data/build/tdclc/CMakeLists.txt +49 -34
- data/build/tdclc/{tdclc_64.cbproj → tdclc.cbproj} +65 -20
- data/build/tdclc/tdclc.rc +0 -0
- data/build/tdclcpp/CMakeLists.txt +84 -20
- data/build/tdclcpp/tdclcpp.rc +0 -0
- data/build/tdclcpp/{tdclcpp_bcb_64.cbproj → tdclcpp_bc.cbproj} +168 -44
- data/build/tdclrb/CMakeLists.txt +84 -66
- data/build/tdclrb/bldgem/extconf.rb +28 -3
- data/build/tdclrb/gem/helper.rb +11 -1
- data/build/tdclrb/gem_output.cmake +20 -16
- data/index_ja.html +15 -0
- data/source/bzs/db/IBlobBuffer.h +15 -17
- data/source/bzs/db/blobBuffer.h +186 -140
- data/source/bzs/db/blobStructs.h +37 -37
- data/source/bzs/db/engine/mysql/IReadRecords.h +34 -34
- data/source/bzs/db/engine/mysql/bookmark.h +150 -147
- data/source/bzs/db/engine/mysql/database.cpp +1721 -1526
- data/source/bzs/db/engine/mysql/database.h +608 -370
- data/source/bzs/db/engine/mysql/dbManager.cpp +213 -201
- data/source/bzs/db/engine/mysql/dbManager.h +115 -104
- data/source/bzs/db/engine/mysql/errorMessage.cpp +49 -50
- data/source/bzs/db/engine/mysql/errorMessage.h +25 -26
- data/source/bzs/db/engine/mysql/fieldAccess.h +55 -61
- data/source/bzs/db/engine/mysql/mydebuglog.cpp +326 -292
- data/source/bzs/db/engine/mysql/mydebuglog.h +63 -55
- data/source/bzs/db/engine/mysql/mysqlInternal.h +182 -125
- data/source/bzs/db/engine/mysql/mysqlThd.cpp +121 -121
- data/source/bzs/db/engine/mysql/mysqlThd.h +20 -20
- data/source/bzs/db/engine/mysql/percentageKey.h +241 -228
- data/source/bzs/db/protocol/ICommandExecuter.h +18 -17
- data/source/bzs/db/protocol/hs/hsCommandExecuter.cpp +543 -514
- data/source/bzs/db/protocol/hs/hsCommandExecuter.h +155 -158
- data/source/bzs/db/protocol/tdap/btrDate.cpp +213 -180
- data/source/bzs/db/protocol/tdap/btrDate.h +39 -37
- data/source/bzs/db/protocol/tdap/client/activeTable.cpp +173 -0
- data/source/bzs/db/protocol/tdap/client/activeTable.h +165 -0
- data/source/bzs/db/protocol/tdap/client/activeTableImple.h +370 -0
- data/source/bzs/db/protocol/tdap/client/bulkInsert.h +13 -23
- data/source/bzs/db/protocol/tdap/client/client.cpp +81 -68
- data/source/bzs/db/protocol/tdap/client/client.h +361 -320
- data/source/bzs/db/protocol/tdap/client/connMgr.cpp +17 -22
- data/source/bzs/db/protocol/tdap/client/connMgr.h +17 -19
- data/source/bzs/db/protocol/tdap/client/connectionPool.cpp +243 -0
- data/source/bzs/db/protocol/tdap/client/connectionPool.h +109 -0
- data/source/bzs/db/protocol/tdap/client/database.cpp +327 -219
- data/source/bzs/db/protocol/tdap/client/database.h +141 -118
- data/source/bzs/db/protocol/tdap/client/databaseFactory.cpp +60 -62
- data/source/bzs/db/protocol/tdap/client/databaseManager.h +255 -0
- data/source/bzs/db/protocol/tdap/client/dbDef.cpp +315 -202
- data/source/bzs/db/protocol/tdap/client/dbDef.h +40 -32
- data/source/bzs/db/protocol/tdap/client/dllmain.cpp +390 -371
- data/source/bzs/db/protocol/tdap/client/errorMessage.cpp +148 -56
- data/source/bzs/db/protocol/tdap/client/errorMessage_ja.cpp +149 -57
- data/source/bzs/db/protocol/tdap/client/export.h +35 -0
- data/source/bzs/db/protocol/tdap/client/field.cpp +1985 -0
- data/source/bzs/db/protocol/tdap/client/field.h +393 -0
- data/source/bzs/db/protocol/tdap/client/fieldDDF.cpp +14 -14
- data/source/bzs/db/protocol/tdap/client/fieldDDF.h +11 -14
- data/source/bzs/db/protocol/tdap/client/fieldNameAlias.cpp +123 -0
- data/source/bzs/db/protocol/tdap/client/fieldNameAlias.h +58 -0
- data/source/bzs/db/protocol/tdap/client/fields.h +178 -0
- data/source/bzs/db/protocol/tdap/client/fileDDF.cpp +13 -16
- data/source/bzs/db/protocol/tdap/client/fileDDF.h +11 -17
- data/source/bzs/db/protocol/tdap/client/filter.h +423 -259
- data/source/bzs/db/protocol/tdap/client/groupComp.h +117 -0
- data/source/bzs/db/protocol/tdap/client/groupQuery.cpp +818 -0
- data/source/bzs/db/protocol/tdap/client/groupQuery.h +281 -0
- data/source/bzs/db/protocol/tdap/client/indexDDF.cpp +14 -17
- data/source/bzs/db/protocol/tdap/client/indexDDF.h +11 -14
- data/source/bzs/db/protocol/tdap/client/memRecord.cpp +231 -0
- data/source/bzs/db/protocol/tdap/client/memRecord.h +145 -0
- data/source/bzs/db/protocol/tdap/client/memRecordset.cpp +448 -0
- data/source/bzs/db/protocol/tdap/client/memRecordset.h +159 -0
- data/source/bzs/db/protocol/tdap/client/nsDatabase.cpp +300 -173
- data/source/bzs/db/protocol/tdap/client/nsDatabase.h +53 -36
- data/source/bzs/db/protocol/tdap/client/nsTable.cpp +171 -128
- data/source/bzs/db/protocol/tdap/client/nsTable.h +121 -87
- data/source/bzs/db/protocol/tdap/client/pooledDatabaseManager.h +173 -0
- data/source/bzs/db/protocol/tdap/client/recordset.cpp +209 -0
- data/source/bzs/db/protocol/tdap/client/recordset.h +86 -0
- data/source/bzs/db/protocol/tdap/client/recordsetImple.h +596 -0
- data/source/bzs/db/protocol/tdap/client/request.h +227 -170
- data/source/bzs/db/protocol/tdap/client/serializer.cpp +1288 -0
- data/source/bzs/db/protocol/tdap/client/serializer.h +295 -0
- data/source/bzs/db/protocol/tdap/client/sharedData.cpp +9 -12
- data/source/bzs/db/protocol/tdap/client/sharedData.h +18 -16
- data/source/bzs/db/protocol/tdap/client/sqlBuilder.cpp +494 -473
- data/source/bzs/db/protocol/tdap/client/sqlBuilder.h +51 -53
- data/source/bzs/db/protocol/tdap/client/stringConverter.h +214 -148
- data/source/bzs/db/protocol/tdap/client/table.cpp +929 -1665
- data/source/bzs/db/protocol/tdap/client/table.h +413 -87
- data/source/bzs/db/protocol/tdap/client/trdboostapi.h +642 -534
- data/source/bzs/db/protocol/tdap/client/trdboostapiInternal.h +25 -40
- data/source/bzs/db/protocol/tdap/client/trdclcppautolink.h +11 -15
- data/source/bzs/db/protocol/tdap/client/trdormapi.h +378 -437
- data/source/bzs/db/protocol/tdap/client/trnsctcl.def +1 -1
- data/source/bzs/db/protocol/tdap/fieldComp.h +127 -0
- data/source/bzs/db/protocol/tdap/myDateTime.cpp +352 -345
- data/source/bzs/db/protocol/tdap/mysql/characterset.cpp +75 -78
- data/source/bzs/db/protocol/tdap/mysql/characterset.h +18 -19
- data/source/bzs/db/protocol/tdap/mysql/databaseSchema.cpp +216 -199
- data/source/bzs/db/protocol/tdap/mysql/databaseSchema.h +23 -14
- data/source/bzs/db/protocol/tdap/mysql/debuglog.cpp +354 -314
- data/source/bzs/db/protocol/tdap/mysql/debuglog.h +57 -47
- data/source/bzs/db/protocol/tdap/mysql/recordsetReader.h +905 -739
- data/source/bzs/db/protocol/tdap/mysql/request.h +152 -159
- data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.cpp +1044 -879
- data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.h +87 -81
- data/source/bzs/db/protocol/tdap/tdapRequest.h +162 -130
- data/source/bzs/db/protocol/tdap/tdapSchema.cpp +368 -166
- data/source/bzs/db/protocol/tdap/tdapSchema.h +702 -566
- data/source/bzs/db/protocol/tdap/tdapcapi.h +387 -353
- data/source/bzs/db/transactd/appBuilderImple.h +21 -20
- data/source/bzs/db/transactd/appModule.cpp +350 -98
- data/source/bzs/db/transactd/appModule.h +31 -37
- data/source/bzs/db/transactd/connManager.cpp +138 -135
- data/source/bzs/db/transactd/connManager.h +28 -21
- data/source/bzs/db/transactd/connectionRecord.h +39 -39
- data/source/bzs/db/transactd/transactd.cpp +217 -203
- data/source/bzs/env/boost_bcb_link.h +131 -0
- data/source/bzs/env/compiler.h +136 -79
- data/source/bzs/env/crosscompile.cpp +57 -57
- data/source/bzs/env/crosscompile.h +130 -115
- data/source/bzs/env/fileopen.h +7 -8
- data/source/bzs/env/mbcswchrLinux.cpp +4 -9
- data/source/bzs/env/mbcswchrLinux.h +37 -34
- data/source/bzs/env/tcharMinGW.h +59 -0
- data/source/bzs/env/tstring.h +90 -95
- data/source/bzs/example/changeSchema.cpp +22 -23
- data/source/bzs/example/changeSchema_c.cpp +22 -24
- data/source/bzs/example/connection_pool_c.cpp +49 -104
- data/source/bzs/example/createDatabase.cpp +40 -47
- data/source/bzs/example/createDatabase_c.cpp +38 -43
- data/source/bzs/example/deleteRecords.cpp +10 -15
- data/source/bzs/example/deleteRecords_c.cpp +10 -14
- data/source/bzs/example/dropDatabase.cpp +3 -9
- data/source/bzs/example/dropDatabase_c.cpp +5 -6
- data/source/bzs/example/insertRecords.cpp +37 -29
- data/source/bzs/example/insertRecords_c.cpp +19 -25
- data/source/bzs/example/ormap_c.cpp +621 -0
- data/source/bzs/example/queryData.cpp +371 -0
- data/source/bzs/example/queryData.h +16 -0
- data/source/bzs/example/query_c.cpp +109 -0
- data/source/bzs/example/readRecords.cpp +27 -27
- data/source/bzs/example/readRecords_c.cpp +25 -23
- data/source/bzs/example/updateRecords.cpp +16 -21
- data/source/bzs/example/updateRecords_c.cpp +8 -12
- data/source/bzs/example/update_with_transaction.cpp +21 -24
- data/source/bzs/example/update_with_transaction_c.cpp +12 -15
- data/source/bzs/example/useORMRecord.cpp +177 -0
- data/source/bzs/netsvc/client/tcpClient.cpp +167 -156
- data/source/bzs/netsvc/client/tcpClient.h +541 -489
- data/source/bzs/netsvc/server/IAppModule.h +119 -32
- data/source/bzs/netsvc/server/iserver.h +21 -23
- data/source/bzs/netsvc/server/serverCpt.cpp +421 -391
- data/source/bzs/netsvc/server/serverCpt.h +41 -43
- data/source/bzs/netsvc/server/serverPipe.cpp +580 -565
- data/source/bzs/netsvc/server/serverPipe.h +44 -45
- data/source/bzs/netsvc/server/serverTpool.cpp +333 -303
- data/source/bzs/netsvc/server/serverTpool.h +38 -43
- data/source/bzs/rtl/benchmark.cpp +91 -31
- data/source/bzs/rtl/benchmark.h +76 -22
- data/source/bzs/rtl/datetime.cpp +231 -233
- data/source/bzs/rtl/datetime.h +16 -16
- data/source/bzs/rtl/debuglog.cpp +48 -51
- data/source/bzs/rtl/debuglog.h +55 -44
- data/source/bzs/rtl/exception.h +55 -48
- data/source/bzs/rtl/stl_uty.cpp +27 -28
- data/source/bzs/rtl/stl_uty.h +28 -29
- data/source/bzs/rtl/stringBuffers.cpp +8 -6
- data/source/bzs/rtl/stringBuffers.h +16 -9
- data/source/bzs/rtl/strtrim.cpp +90 -91
- data/source/bzs/rtl/strtrim.h +14 -16
- data/source/bzs/test/tdclatl/bench_query_atl.js +647 -0
- data/source/bzs/test/tdclatl/bench_tdclatl.js +303 -303
- data/source/bzs/test/tdclatl/test_query_atl.js +669 -0
- data/source/bzs/test/tdclphp/bench.php +357 -0
- data/source/bzs/test/tdclphp/transactd_Test.php +907 -303
- data/source/bzs/test/tdclphp/transactd_blob_Test.php +21 -49
- data/source/bzs/test/tdclphp/transactd_datetime_Test.php +41 -75
- data/source/bzs/test/tdclphp/transactd_kanjischema_Test.php +23 -37
- data/source/bzs/test/tdclphp/transactd_pool_Test.php +120 -0
- data/source/bzs/test/tdclrb/bench_tdclcpp.rb +4 -6
- data/source/bzs/test/tdclrb/prepare.rb +15 -12
- data/source/bzs/test/tdclrb/transactd_blob_spec.rb +29 -32
- data/source/bzs/test/tdclrb/transactd_datetime_spec.rb +0 -29
- data/source/bzs/test/tdclrb/transactd_kanjischema_spec.rb +18 -19
- data/source/bzs/test/tdclrb/transactd_pool_spec.rb +107 -0
- data/source/bzs/test/tdclrb/transactd_spec.rb +734 -142
- data/source/bzs/test/transactdBench/query_bench.cpp +156 -0
- data/source/bzs/test/transactdBench/scaling_bench.cpp +265 -0
- data/source/bzs/test/transactdBench/transactdBench.cpp +107 -83
- data/source/bzs/test/transactdBench/transactdBench2.cpp +122 -83
- data/source/bzs/test/transactdBench/workerBase.cpp +5 -0
- data/source/bzs/test/transactdBench/workerBase.h +88 -0
- data/source/bzs/test/transactdBench/workerMySQLImple.h +333 -0
- data/source/bzs/test/transactdBench/workerTransactdImple.h +201 -0
- data/source/bzs/test/trdclengn/test_blob.cpp +121 -73
- data/source/bzs/test/trdclengn/test_trdclengn.cpp +1244 -426
- data/source/global/ormsrcgen/confParam.h +80 -0
- data/source/global/ormsrcgen/fieldName.cpp +77 -0
- data/source/global/ormsrcgen/fieldName.h +43 -0
- data/source/global/ormsrcgen/main.cpp +196 -0
- data/source/global/ormsrcgen/srcgen.cpp +763 -0
- data/source/global/ormsrcgen/srcgen.h +72 -0
- data/source/global/ormsrcgen/template/fieldNameList_sample.txt +2 -0
- data/source/global/ormsrcgen/template/ormDataClass_template.cpp +48 -0
- data/source/global/ormsrcgen/template/ormDataClass_template.h +34 -0
- data/source/global/ormsrcgen/template/ormMapClass_template.cpp +51 -0
- data/source/global/ormsrcgen/template/ormMapClass_template.h +62 -0
- data/source/global/ormsrcgen/template/template.cnf +38 -0
- data/source/global/querystmts/querystmts.cpp +237 -0
- data/source/global/tdclatl/ConnectParams.cpp +77 -0
- data/source/global/tdclatl/ConnectParams.h +70 -0
- data/source/global/tdclatl/Database.cpp +132 -128
- data/source/global/tdclatl/Database.h +60 -49
- data/source/global/tdclatl/DbDef.cpp +68 -64
- data/source/global/tdclatl/DbDef.h +36 -36
- data/source/global/tdclatl/Field.cpp +12 -17
- data/source/global/tdclatl/Field.h +15 -12
- data/source/global/tdclatl/FieldDef.cpp +75 -36
- data/source/global/tdclatl/FieldDef.h +38 -19
- data/source/global/tdclatl/FieldDefs.cpp +74 -0
- data/source/global/tdclatl/FieldDefs.h +56 -0
- data/source/global/tdclatl/FieldNames.cpp +99 -0
- data/source/global/tdclatl/FieldNames.h +66 -0
- data/source/global/tdclatl/Flags.cpp +75 -37
- data/source/global/tdclatl/Flags.h +13 -12
- data/source/global/tdclatl/GroupQuery.cpp +119 -0
- data/source/global/tdclatl/GroupQuery.h +65 -0
- data/source/global/tdclatl/KeyDef.cpp +15 -14
- data/source/global/tdclatl/KeyDef.h +20 -17
- data/source/global/tdclatl/KeySegment.cpp +13 -12
- data/source/global/tdclatl/PooledDbManager.cpp +223 -0
- data/source/global/tdclatl/PooledDbManager.h +76 -0
- data/source/global/tdclatl/QueryBase.cpp +206 -127
- data/source/global/tdclatl/QueryBase.h +55 -59
- data/source/global/tdclatl/Record.cpp +214 -0
- data/source/global/tdclatl/Record.h +96 -0
- data/source/global/tdclatl/Recordset.cpp +278 -0
- data/source/global/tdclatl/Recordset.h +83 -0
- data/source/global/tdclatl/RecordsetQuery.cpp +118 -0
- data/source/global/tdclatl/RecordsetQuery.h +126 -0
- data/source/global/tdclatl/Table.cpp +57 -60
- data/source/global/tdclatl/Table.h +32 -29
- data/source/global/tdclatl/TableDef.cpp +63 -62
- data/source/global/tdclatl/TableDef.h +20 -22
- data/source/global/tdclatl/TdVersion.cpp +3 -3
- data/source/global/tdclatl/TdVersion.h +15 -11
- data/source/global/tdclatl/_IDatabaseEvents_CP.h +99 -92
- data/source/global/tdclatl/activeTable.cpp +355 -0
- data/source/global/tdclatl/activeTable.h +79 -0
- data/source/global/tdclatl/dllmain.cpp +4 -3
- data/source/global/tdclatl/dllmain.h +7 -6
- data/source/global/tdclatl/keySegment.h +22 -18
- data/source/global/tdclatl/resource.h +0 -0
- data/source/global/tdclatl/stdafx.h +6 -4
- data/source/global/tdclatl/targetver.h +0 -1
- data/source/global/tdclatl/tdclatl.cpp +10 -5
- data/source/global/tdclatl/tdclatl.idl +530 -14
- data/source/linux/charsetConvert.h +78 -79
- data/source/linux/linuxTypes.h +9 -12
- data/source/linux/tchar.h +168 -166
- data/transactd.gemspec +24 -16
- metadata +98 -12
- data/bin/common/tdclc_32_1_2.dll +0 -0
- data/bin/common/tdclc_64_1_2.dll +0 -0
- data/build/tdclc/tdclc_32.cbproj +0 -173
- data/build/tdclcpp/tdclcpp_bcb_32.cbproj +0 -232
- data/build/tdclrb/GEM_VERSION +0 -3
- data/source/bzs/db/protocol/tdap/client/filter.cpp +0 -43
- data/source/bzs/example/useORM.cpp +0 -585
@@ -16,29 +16,21 @@
|
|
16
16
|
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
17
17
|
02111-1307, USA.
|
18
18
|
================================================================= */
|
19
|
-
#include <bzs/env/tstring.h>
|
20
|
-
#pragma hdrstop
|
21
|
-
|
22
|
-
|
23
19
|
#include "nsTable.h"
|
24
20
|
#include "nsDatabase.h"
|
25
21
|
#include "bulkInsert.h"
|
26
22
|
|
27
23
|
#include <limits.h>
|
28
|
-
#include <string.h>
|
24
|
+
#include <string.h> // Required for _fstrstr()
|
29
25
|
#include <stdio.h>
|
30
26
|
#include <stdlib.h>
|
31
27
|
#include <time.h>
|
32
28
|
#include <boost/filesystem.hpp>
|
33
29
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
30
|
#pragma package(smart_init)
|
39
31
|
|
40
32
|
/* TODO: To be support internal started transction with original flag.*/
|
41
|
-
#ifdef __x86_64__
|
33
|
+
#ifdef __x86_64__
|
42
34
|
#define MEM_FREED_MAGIC_NUMBER (nstimpl*)0x0FEEEFEEEFEEEFEEE
|
43
35
|
#else
|
44
36
|
#define MEM_FREED_MAGIC_NUMBER (nstimpl*)0x0FEEEFEEE
|
@@ -56,11 +48,12 @@ namespace client
|
|
56
48
|
|
57
49
|
struct nstimpl
|
58
50
|
{
|
59
|
-
nstimpl()
|
51
|
+
nstimpl()
|
52
|
+
: refCount(1), bulkIns(NULL), mode(0), shared(false), isOpen(false)
|
60
53
|
{
|
61
54
|
posblk[0] = 0x00;
|
62
55
|
}
|
63
|
-
|
56
|
+
int refCount;
|
64
57
|
bulkInsert* bulkIns;
|
65
58
|
nsdatabase* nsdb;
|
66
59
|
percentage_td percentage;
|
@@ -68,6 +61,7 @@ struct nstimpl
|
|
68
61
|
_TCHAR uri[MAX_PATH];
|
69
62
|
uchar_td posblk[POS_BLOCK_SIZE];
|
70
63
|
short tableid;
|
64
|
+
char_td mode;
|
71
65
|
bool shared;
|
72
66
|
bool isOpen;
|
73
67
|
};
|
@@ -75,15 +69,15 @@ struct nstimpl
|
|
75
69
|
// -----------------------------------------------------------------
|
76
70
|
// class nstable
|
77
71
|
// -----------------------------------------------------------------
|
78
|
-
extern
|
72
|
+
extern _TCHAR* getErrorMessageLocale(int errorCode, _TCHAR* buf, size_t size);
|
79
73
|
|
80
|
-
nstable::nstable(nsdatabase
|
74
|
+
nstable::nstable(nsdatabase* pbe)
|
81
75
|
{
|
82
76
|
m_impl = new nstimpl();
|
83
77
|
m_impl->nsdb = pbe;
|
84
78
|
|
85
|
-
|
86
|
-
|
79
|
+
// addref to nsdatabase
|
80
|
+
pbe->addref();
|
87
81
|
if (pbe->openTableCount() == nsdatabase::maxtables)
|
88
82
|
{
|
89
83
|
m_stat = STATUS_LMITS_MAX_TABLES;
|
@@ -100,7 +94,6 @@ nstable::nstable(nsdatabase *pbe)
|
|
100
94
|
m_write = true;
|
101
95
|
m_insart = true;
|
102
96
|
m_delete = true;
|
103
|
-
|
104
97
|
}
|
105
98
|
|
106
99
|
nstable::~nstable()
|
@@ -109,24 +102,26 @@ nstable::~nstable()
|
|
109
102
|
delete m_impl->bulkIns;
|
110
103
|
close();
|
111
104
|
|
112
|
-
|
113
|
-
|
114
|
-
|
105
|
+
if (!m_impl->shared)
|
106
|
+
{
|
107
|
+
m_impl->nsdb->unregisterTable(this);
|
108
|
+
m_impl->nsdb->release();
|
109
|
+
}
|
110
|
+
|
115
111
|
delete m_impl;
|
116
|
-
|
112
|
+
m_impl = MEM_FREED_MAGIC_NUMBER;
|
117
113
|
}
|
118
114
|
|
119
|
-
|
115
|
+
_TCHAR* nstable::getErrorMessage(int errorCode, _TCHAR* buf, size_t size)
|
120
116
|
{
|
121
117
|
return getErrorMessageLocale(errorCode, buf, size);
|
122
|
-
|
123
118
|
}
|
124
119
|
|
125
120
|
/* Key number is set by user.
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
121
|
+
KyeNum
|
122
|
+
- -1 = Unlock the record that specified by bm in multi records.
|
123
|
+
- -2 = Unlock all records
|
124
|
+
- �{ = Unlock single record.
|
130
125
|
*/
|
131
126
|
void nstable::unlock(bookmark_td bm)
|
132
127
|
{
|
@@ -138,23 +133,55 @@ void nstable::unlock(bookmark_td bm)
|
|
138
133
|
m_pdata = db;
|
139
134
|
}
|
140
135
|
|
141
|
-
|
136
|
+
bool nstable::isUseTransactd() const
|
137
|
+
{
|
138
|
+
return nsdb()->isUseTransactd();
|
139
|
+
}
|
140
|
+
|
141
|
+
void nstable::seekByBookmark()
|
142
|
+
{
|
143
|
+
seekByBookmark(m_impl->bookmark);
|
144
|
+
}
|
142
145
|
|
143
|
-
const _TCHAR* nstable::uri() const
|
146
|
+
const _TCHAR* nstable::uri() const
|
147
|
+
{
|
148
|
+
return m_impl->uri;
|
149
|
+
}
|
144
150
|
|
145
|
-
const uchar_td* nstable::posblk() const
|
151
|
+
const uchar_td* nstable::posblk() const
|
152
|
+
{
|
153
|
+
return m_impl->posblk;
|
154
|
+
}
|
146
155
|
|
147
|
-
nsdatabase* nstable::nsdb() const
|
156
|
+
nsdatabase* nstable::nsdb() const
|
157
|
+
{
|
158
|
+
return m_impl->nsdb;
|
159
|
+
}
|
148
160
|
|
149
|
-
bulkInsert* nstable::bulkIns() const
|
161
|
+
bulkInsert* nstable::bulkIns() const
|
162
|
+
{
|
163
|
+
return m_impl->bulkIns;
|
164
|
+
}
|
150
165
|
|
151
|
-
void nstable::setIsOpen(bool v)
|
166
|
+
void nstable::setIsOpen(bool v)
|
167
|
+
{
|
168
|
+
m_impl->isOpen = v;
|
169
|
+
}
|
152
170
|
|
153
|
-
bool nstable::isOpen() const
|
171
|
+
bool nstable::isOpen() const
|
172
|
+
{
|
173
|
+
return m_impl->isOpen;
|
174
|
+
}
|
154
175
|
|
155
|
-
short nstable::tableid() const
|
176
|
+
short nstable::tableid() const
|
177
|
+
{
|
178
|
+
return m_impl->tableid;
|
179
|
+
}
|
156
180
|
|
157
|
-
void nstable::setTableid(short v)
|
181
|
+
void nstable::setTableid(short v)
|
182
|
+
{
|
183
|
+
m_impl->tableid = v;
|
184
|
+
}
|
158
185
|
|
159
186
|
void nstable::setShared()
|
160
187
|
{
|
@@ -164,35 +191,39 @@ void nstable::setShared()
|
|
164
191
|
|
165
192
|
int nstable::refCount() const
|
166
193
|
{
|
167
|
-
|
194
|
+
return m_impl->refCount;
|
168
195
|
}
|
169
196
|
|
170
197
|
void nstable::addref(void)
|
171
198
|
{
|
172
|
-
|
199
|
+
++m_impl->refCount;
|
173
200
|
}
|
174
201
|
|
175
202
|
void nstable::release()
|
176
203
|
{
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
204
|
+
|
205
|
+
/* If before called database::drop() database::close() etc then
|
206
|
+
nstable::destory called.
|
207
|
+
Client cache nstable pointer that is invalid.
|
208
|
+
It test by test method.
|
209
|
+
*/
|
210
|
+
try
|
211
|
+
{
|
212
|
+
if (test(this))
|
213
|
+
{
|
214
|
+
if (--m_impl->refCount == 0)
|
215
|
+
delete this;
|
216
|
+
}
|
217
|
+
}
|
218
|
+
catch (...)
|
219
|
+
{
|
220
|
+
}
|
190
221
|
}
|
191
222
|
|
192
223
|
void nstable::destroy()
|
193
224
|
{
|
194
|
-
|
195
|
-
|
225
|
+
if (!m_impl->shared)
|
226
|
+
delete this;
|
196
227
|
}
|
197
228
|
|
198
229
|
void nstable::doClose()
|
@@ -306,6 +337,11 @@ void nstable::seekLessThan(bool orEqual, ushort_td LockBias)
|
|
306
337
|
onReadAfter();
|
307
338
|
}
|
308
339
|
|
340
|
+
char_td nstable::mode() const
|
341
|
+
{
|
342
|
+
return m_impl->mode;
|
343
|
+
}
|
344
|
+
|
309
345
|
void nstable::doOpen(const _TCHAR* name, char_td mode, const _TCHAR* ownerName)
|
310
346
|
{
|
311
347
|
void* svm_keybuf = m_keybuf;
|
@@ -324,7 +360,7 @@ void nstable::doOpen(const _TCHAR* name, char_td mode, const _TCHAR* ownerName)
|
|
324
360
|
else
|
325
361
|
#endif
|
326
362
|
if (m_impl->uri != name)
|
327
|
-
|
363
|
+
_tcscpy_s(m_impl->uri, MAX_PATH, name);
|
328
364
|
|
329
365
|
// for trnasctd
|
330
366
|
if (m_impl->nsdb->isTransactdUri(m_impl->uri))
|
@@ -336,8 +372,9 @@ void nstable::doOpen(const _TCHAR* name, char_td mode, const _TCHAR* ownerName)
|
|
336
372
|
}
|
337
373
|
}
|
338
374
|
|
339
|
-
char tmpName[MAX_PATH]={0x00};
|
340
|
-
const char* p = nsdatabase::toServerUri(tmpName, MAX_PATH, m_impl->uri,
|
375
|
+
char tmpName[MAX_PATH] = { 0x00 };
|
376
|
+
const char* p = nsdatabase::toServerUri(tmpName, MAX_PATH, m_impl->uri,
|
377
|
+
m_impl->nsdb->isUseTransactd());
|
341
378
|
m_keybuf = (void*)p;
|
342
379
|
m_keylen = (keylen_td)strlen(p) + 1;
|
343
380
|
|
@@ -346,25 +383,27 @@ void nstable::doOpen(const _TCHAR* name, char_td mode, const _TCHAR* ownerName)
|
|
346
383
|
else
|
347
384
|
m_keynum = mode;
|
348
385
|
|
349
|
-
char ownerNameBuf[OWNERNAME_SIZE+1] = {0x00};
|
386
|
+
char ownerNameBuf[OWNERNAME_SIZE + 1] = { 0x00 };
|
350
387
|
if (NULL != ownerName && 0x00 != ownerName[0])
|
351
388
|
{
|
352
|
-
const char*
|
353
|
-
m_pdata = (void*)
|
354
|
-
m_datalen = (uint_td)strlen(
|
389
|
+
const char* p2 = toChar(ownerNameBuf, ownerName, 22);
|
390
|
+
m_pdata = (void*)p2;
|
391
|
+
m_datalen = (uint_td)strlen(p2) + 1;
|
355
392
|
if (m_datalen > 11)
|
356
393
|
{
|
357
394
|
m_stat = STATUS_TOO_LONG_OWNERNAME;
|
358
395
|
return;
|
359
396
|
}
|
360
|
-
|
361
397
|
}
|
362
398
|
else
|
363
399
|
m_datalen = 0;
|
364
400
|
|
365
401
|
tdap(TD_OPENTABLE);
|
366
402
|
if (m_stat == STATUS_SUCCESS)
|
403
|
+
{
|
367
404
|
m_impl->isOpen = true;
|
405
|
+
m_impl->mode = mode;
|
406
|
+
}
|
368
407
|
m_keybuf = svm_keybuf;
|
369
408
|
m_keynum = svm_keynum;
|
370
409
|
m_keylen = svm_keybuflen;
|
@@ -379,8 +418,6 @@ void nstable::doUpdate(eUpdateType type)
|
|
379
418
|
return;
|
380
419
|
}
|
381
420
|
|
382
|
-
|
383
|
-
|
384
421
|
if (onUpdateCheck(type) == false)
|
385
422
|
return;
|
386
423
|
|
@@ -390,7 +427,7 @@ void nstable::doUpdate(eUpdateType type)
|
|
390
427
|
{
|
391
428
|
if (trnCount < nsdb()->enableTrn())
|
392
429
|
nsdb()->abortTrn();
|
393
|
-
return
|
430
|
+
return;
|
394
431
|
}
|
395
432
|
char_td keynum = m_keynum;
|
396
433
|
m_keylen = m_keybuflen;
|
@@ -416,7 +453,7 @@ void nstable::doDel(bool inkey)
|
|
416
453
|
m_stat = STATUS_NO_ACR_UPDATE_DELETE;
|
417
454
|
return;
|
418
455
|
}
|
419
|
-
if (onDeleteCheck(inkey)==false)
|
456
|
+
if (onDeleteCheck(inkey) == false)
|
420
457
|
return;
|
421
458
|
|
422
459
|
m_datalen = m_buflen;
|
@@ -441,7 +478,6 @@ void nstable::doDel(bool inkey)
|
|
441
478
|
}
|
442
479
|
tdap(TD_REC_DELETE);
|
443
480
|
}
|
444
|
-
|
445
481
|
}
|
446
482
|
|
447
483
|
void nstable::onInsertAfter(int beforeResult)
|
@@ -473,7 +509,8 @@ ushort_td nstable::doInsert(bool ncc)
|
|
473
509
|
m_stat = STATUS_INVALID_VALLEN;
|
474
510
|
m_datalen = getWriteImageLen();
|
475
511
|
if (m_impl->bulkIns)
|
476
|
-
ins_rows =
|
512
|
+
ins_rows =
|
513
|
+
m_impl->bulkIns->insert((const char*)data(), m_datalen, this);
|
477
514
|
else
|
478
515
|
{
|
479
516
|
tdap(TD_REC_INSERT);
|
@@ -612,7 +649,6 @@ void nstable::seekByPercentage()
|
|
612
649
|
tdap(TD_MOVE_PER);
|
613
650
|
if (m_stat == STATUS_SUCCESS)
|
614
651
|
onReadAfter();
|
615
|
-
|
616
652
|
}
|
617
653
|
|
618
654
|
void nstable::seekByPercentage(percentage_td pc)
|
@@ -627,7 +663,6 @@ void nstable::seekByPercentage(percentage_td pc)
|
|
627
663
|
tdap(TD_MOVE_PER);
|
628
664
|
if (m_stat == STATUS_SUCCESS)
|
629
665
|
onReadAfter();
|
630
|
-
|
631
666
|
}
|
632
667
|
|
633
668
|
void nstable::setOwnerName(const _TCHAR* Owner_p, char_td mode)
|
@@ -660,7 +695,10 @@ void nstable::setOwnerName(const _TCHAR* Owner_p, char_td mode)
|
|
660
695
|
m_keynum = svm_keynum;
|
661
696
|
}
|
662
697
|
|
663
|
-
void nstable::clearOwnerName()
|
698
|
+
void nstable::clearOwnerName()
|
699
|
+
{
|
700
|
+
tdap(TD_CLEAR_OWNERNAME);
|
701
|
+
}
|
664
702
|
|
665
703
|
void nstable::stats(void* dataBuf, uint_td len, bool estimate)
|
666
704
|
{
|
@@ -684,9 +722,9 @@ void nstable::stats(void* dataBuf, uint_td len, bool estimate)
|
|
684
722
|
m_keynum = svm_keynum;
|
685
723
|
}
|
686
724
|
|
687
|
-
uint_td nstable::doRecordCount(bool estimate, bool fromCurrent
|
725
|
+
uint_td nstable::doRecordCount(bool estimate, bool fromCurrent)
|
688
726
|
{
|
689
|
-
fileSpec
|
727
|
+
fileSpec* fs;
|
690
728
|
uint_td Count;
|
691
729
|
|
692
730
|
fs = (fileSpec*)malloc(1920);
|
@@ -698,7 +736,7 @@ uint_td nstable::doRecordCount(bool estimate, bool fromCurrent, eFindType /*dire
|
|
698
736
|
|
699
737
|
ushort_td nstable::recordLength()
|
700
738
|
{
|
701
|
-
fileSpec
|
739
|
+
fileSpec* fs;
|
702
740
|
ushort_td len = 0;
|
703
741
|
|
704
742
|
fs = (fileSpec*)malloc(1920);
|
@@ -716,7 +754,6 @@ void nstable::doCreateIndex(bool specifyKeyNum)
|
|
716
754
|
tdap(TD_BUILD_INDEX);
|
717
755
|
if (specifyKeyNum)
|
718
756
|
m_keynum -= ((uchar_td)0x80);
|
719
|
-
|
720
757
|
}
|
721
758
|
|
722
759
|
void nstable::dropIndex(bool NoRenumber)
|
@@ -726,7 +763,6 @@ void nstable::dropIndex(bool NoRenumber)
|
|
726
763
|
tdap(TD_DROP_INDEX);
|
727
764
|
if (NoRenumber)
|
728
765
|
m_keynum -= ((uchar_td)0x80);
|
729
|
-
|
730
766
|
}
|
731
767
|
|
732
768
|
short_td nstable::doBtrvErr(HWND hWnd, _TCHAR* retbuf)
|
@@ -757,72 +793,77 @@ void nstable::tdap(ushort_td op)
|
|
757
793
|
return;
|
758
794
|
}
|
759
795
|
BTRCALLID_PTR func = m_impl->nsdb->btrvFunc();
|
760
|
-
m_stat = func(m_op, m_impl->posblk, m_pdata, &m_datalen, m_keybuf,
|
761
|
-
|
796
|
+
m_stat = func(m_op, m_impl->posblk, m_pdata, &m_datalen, m_keybuf,
|
797
|
+
m_keylen, m_keynum, m_impl->nsdb->clientID());
|
762
798
|
|
763
799
|
// Wait for record lock or file lock.
|
764
|
-
//LoopCount++;
|
800
|
+
// LoopCount++;
|
765
801
|
switch (m_stat)
|
766
802
|
{
|
767
|
-
case STATUS_LOCK_ERROR:
|
803
|
+
case STATUS_LOCK_ERROR:
|
804
|
+
Sleep(m_impl->nsdb->lockWaitTime());
|
768
805
|
break;
|
769
|
-
case STATUS_FILE_LOCKED:
|
806
|
+
case STATUS_FILE_LOCKED:
|
807
|
+
Sleep(m_impl->nsdb->lockWaitTime());
|
770
808
|
break;
|
771
809
|
|
772
|
-
default:
|
810
|
+
default:
|
811
|
+
return;
|
773
812
|
}
|
774
|
-
}
|
775
|
-
|
776
|
-
&& (m_impl->nsdb->lockWaitCount() != LoopCount++));
|
777
|
-
|
813
|
+
} while ((m_stat != STATUS_SUCCESS) &&
|
814
|
+
(m_impl->nsdb->lockWaitCount() != LoopCount++));
|
778
815
|
}
|
779
816
|
|
780
817
|
/* tdap error handling
|
781
818
|
*/
|
782
|
-
short_td nstable::tdapErr(HWND hWnd, short_td status, const _TCHAR* TableName,
|
819
|
+
short_td nstable::tdapErr(HWND hWnd, short_td status, const _TCHAR* TableName,
|
820
|
+
_TCHAR* retbuf)
|
783
821
|
{
|
784
|
-
if (status == STATUS_SUCCESS)
|
785
|
-
|
786
|
-
else if (status ==
|
822
|
+
if (status == STATUS_SUCCESS)
|
823
|
+
return 0;
|
824
|
+
else if (status == STATUS_EOF)
|
825
|
+
return 0;
|
826
|
+
else if (status == STATUS_NOT_FOUND_TI)
|
827
|
+
return 0;
|
787
828
|
|
788
|
-
|
829
|
+
_TCHAR buf[512];
|
789
830
|
short_td errorCode = status;
|
790
|
-
|
831
|
+
getErrorMessage(errorCode, buf, 512);
|
791
832
|
|
792
|
-
#pragma warning(disable:4996)
|
833
|
+
#pragma warning(disable : 4996)
|
793
834
|
if (retbuf)
|
794
835
|
_stprintf(retbuf, _T("table_name:%s \n%s"), TableName, buf);
|
795
|
-
#pragma warning(default:4996)
|
836
|
+
#pragma warning(default : 4996)
|
837
|
+
|
838
|
+
if ((int)hWnd <= 0)
|
839
|
+
return errorCode;
|
796
840
|
|
797
|
-
if ((int)hWnd <= 0) return errorCode;
|
798
|
-
|
799
841
|
#ifdef _WIN32
|
800
842
|
if (TableName)
|
801
843
|
MessageBox(hWnd, buf, TableName, MB_OK | MB_ICONSTOP | MB_SYSTEMMODAL);
|
802
844
|
else
|
803
|
-
|
845
|
+
MessageBox(hWnd, buf, _T("tdapErr"),
|
846
|
+
MB_OK | MB_ICONSTOP | MB_SYSTEMMODAL);
|
804
847
|
#endif
|
805
848
|
return errorCode;
|
806
849
|
}
|
807
850
|
|
808
|
-
|
809
851
|
void nstable::throwError(const _TCHAR* caption, short statusCode)
|
810
852
|
{
|
811
|
-
_TCHAR tmp[1024]={0x00};
|
812
|
-
nstable::tdapErr(0x00, statusCode,
|
813
|
-
_TCHAR tmp2[1024]={0x00};
|
814
|
-
_stprintf_s(tmp2, 1024, _T("%s\n%s\n"),caption, tmp);
|
853
|
+
_TCHAR tmp[1024] = { 0x00 };
|
854
|
+
nstable::tdapErr(0x00, statusCode, _T("unknown"), tmp);
|
855
|
+
_TCHAR tmp2[1024] = { 0x00 };
|
856
|
+
_stprintf_s(tmp2, 1024, _T("%s\n%s\n"), caption, tmp);
|
815
857
|
THROW_BZS_ERROR_WITH_CODEMSG(statusCode, tmp2);
|
816
858
|
}
|
817
859
|
|
818
860
|
void nstable::throwError(const _TCHAR* caption, nstable* tb)
|
819
861
|
{
|
820
|
-
_TCHAR tmp[1024]={0x00};
|
862
|
+
_TCHAR tmp[1024] = { 0x00 };
|
821
863
|
nstable::tdapErr(0x00, tb->stat(), tb->uri(), tmp);
|
822
|
-
_TCHAR tmp2[1024]={0x00};
|
823
|
-
_stprintf_s(tmp2, 1024, _T("[%s]\n%s\n"),caption, tmp);
|
864
|
+
_TCHAR tmp2[1024] = { 0x00 };
|
865
|
+
_stprintf_s(tmp2, 1024, _T("[%s]\n%s\n"), caption, tmp);
|
824
866
|
THROW_BZS_ERROR_WITH_CODEMSG(tb->stat(), tmp2);
|
825
|
-
|
826
867
|
}
|
827
868
|
|
828
869
|
_TCHAR* nstable::getDirURI(const _TCHAR* path, _TCHAR* buf)
|
@@ -836,8 +877,8 @@ _TCHAR* nstable::getDirURI(const _TCHAR* path, _TCHAR* buf)
|
|
836
877
|
else
|
837
878
|
#endif
|
838
879
|
_tcscpy(buf, path);
|
839
|
-
_TUCHAR* p = _tcsmrchr((_TUCHAR*)buf, PSEPARATOR_C);
|
840
|
-
_TUCHAR* p2 = _tcsmrchr((_TUCHAR*)buf, '=');
|
880
|
+
_TUCHAR* p = (_TUCHAR*)_tcsmrchr((const _TUCHAR*)buf, PSEPARATOR_C);
|
881
|
+
_TUCHAR* p2 = (_TUCHAR*)_tcsmrchr((const _TUCHAR*)buf, '=');
|
841
882
|
if (p && p2)
|
842
883
|
{
|
843
884
|
if (p2 > p)
|
@@ -846,9 +887,9 @@ _TCHAR* nstable::getDirURI(const _TCHAR* path, _TCHAR* buf)
|
|
846
887
|
p2 = NULL;
|
847
888
|
}
|
848
889
|
if (p)
|
849
|
-
*
|
890
|
+
*p = 0x00;
|
850
891
|
if (p2)
|
851
|
-
*
|
892
|
+
*(p2 + 1) = 0x00;
|
852
893
|
return buf;
|
853
894
|
}
|
854
895
|
|
@@ -858,8 +899,8 @@ _TCHAR* nstable::getDirURI(const _TCHAR* path, _TCHAR* buf)
|
|
858
899
|
_TCHAR* nstable::getFileName(const _TCHAR* path, _TCHAR* filename)
|
859
900
|
{
|
860
901
|
|
861
|
-
_TUCHAR* p = _tcsmrchr((_TUCHAR*)path, PSEPARATOR_C);
|
862
|
-
_TUCHAR* p2 = _tcsmrchr((_TUCHAR*)path, '=');
|
902
|
+
_TUCHAR* p = (_TUCHAR*)_tcsmrchr((const _TUCHAR*)path, PSEPARATOR_C);
|
903
|
+
_TUCHAR* p2 = (_TUCHAR*)_tcsmrchr((const _TUCHAR*)path, '=');
|
863
904
|
filename[0] = 0x00;
|
864
905
|
if (p2 > p)
|
865
906
|
p = p2;
|
@@ -883,27 +924,29 @@ bool nstable::existsFile(const _TCHAR* filename)
|
|
883
924
|
|
884
925
|
bool nstable::test(nstable* p)
|
885
926
|
{
|
886
|
-
|
887
|
-
|
927
|
+
try
|
928
|
+
{
|
888
929
|
|
889
|
-
|
930
|
+
char* pp = (char*)(p);
|
890
931
|
#ifdef _WIN32
|
891
|
-
|
892
|
-
|
893
|
-
|
932
|
+
_TCHAR buf[256];
|
933
|
+
wsprintf(buf, _T("test(%p) = %p\n"), p, *((nstimpl**)(pp + 4)));
|
934
|
+
OutputDebugString(buf);
|
894
935
|
#endif
|
895
|
-
#ifdef __x86_64__
|
896
|
-
|
936
|
+
#ifdef __x86_64__
|
937
|
+
return (MEM_FREED_MAGIC_NUMBER != *((nstimpl**)(pp + sizeof(char*))));
|
897
938
|
#else
|
898
|
-
|
939
|
+
return (MEM_FREED_MAGIC_NUMBER != *((nstimpl**)(pp + sizeof(char*))));
|
899
940
|
#endif
|
900
|
-
|
901
|
-
|
902
|
-
|
941
|
+
}
|
942
|
+
catch (...)
|
943
|
+
{
|
944
|
+
};
|
945
|
+
return false;
|
903
946
|
}
|
904
947
|
|
905
|
-
}// namespace client
|
906
|
-
}// namespace tdap
|
907
|
-
}// namespace protocol
|
908
|
-
}// namespace db
|
909
|
-
}// namespace bzs
|
948
|
+
} // namespace client
|
949
|
+
} // namespace tdap
|
950
|
+
} // namespace protocol
|
951
|
+
} // namespace db
|
952
|
+
} // namespace bzs
|