transactd 1.2.0 → 2.0.0
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.
- 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
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
GNU General Public License for more details.
|
|
13
13
|
|
|
14
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
|
|
15
|
+
along with this program; if not, write to the Free Software
|
|
16
|
+
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
|
17
17
|
02111-1307, USA.
|
|
18
18
|
=================================================================*/
|
|
19
19
|
|
|
@@ -23,179 +23,182 @@
|
|
|
23
23
|
|
|
24
24
|
namespace bzs
|
|
25
25
|
{
|
|
26
|
-
|
|
26
|
+
using namespace netsvc::server;
|
|
27
27
|
namespace db
|
|
28
28
|
{
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
using namespace protocol::tdap::mysql;
|
|
30
|
+
using namespace engine::mysql;
|
|
31
31
|
|
|
32
32
|
namespace transactd
|
|
33
33
|
{
|
|
34
34
|
|
|
35
35
|
connManager::~connManager()
|
|
36
36
|
{
|
|
37
|
-
|
|
38
|
-
|
|
39
37
|
}
|
|
40
38
|
|
|
41
39
|
const module* getMod(unsigned __int64 conid)
|
|
42
40
|
{
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
41
|
+
for (size_t i = 0; i < modules.size(); i++)
|
|
42
|
+
{
|
|
43
|
+
const module* mod = dynamic_cast<module*>(modules[i]);
|
|
44
|
+
if ((unsigned __int64)mod == conid)
|
|
45
|
+
return mod;
|
|
46
|
+
}
|
|
47
|
+
return NULL;
|
|
50
48
|
}
|
|
51
49
|
|
|
52
|
-
const database* connManager::getDatabase(const module* mod, int dbid)const
|
|
50
|
+
const database* connManager::getDatabase(const module* mod, int dbid) const
|
|
53
51
|
{
|
|
54
52
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
53
|
+
igetDatabases* dbm =
|
|
54
|
+
dynamic_cast<igetDatabases*>(mod->m_commandExecuter.get());
|
|
55
|
+
const databases& dbs = dbm->dbs();
|
|
56
|
+
if (dbid < (int)dbs.size())
|
|
57
|
+
return dbs[dbid].get();
|
|
58
|
+
return NULL;
|
|
60
59
|
}
|
|
61
60
|
|
|
62
|
-
void connManager::getConnectionList()const
|
|
61
|
+
void connManager::getConnectionList() const
|
|
63
62
|
{
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
}
|
|
78
|
-
}
|
|
63
|
+
for (size_t i = 0; i < modules.size(); i++)
|
|
64
|
+
{
|
|
65
|
+
const module* mod = dynamic_cast<module*>(modules[i]);
|
|
66
|
+
if (mod && ((unsigned __int64)mod != m_me))
|
|
67
|
+
{
|
|
68
|
+
|
|
69
|
+
m_records.push_back(connection::record());
|
|
70
|
+
connection::record& rec = m_records[m_records.size() - 1];
|
|
71
|
+
rec.conId = (unsigned __int64)mod;
|
|
72
|
+
boost::asio::ip::address adr = mod->m_endpoint.address();
|
|
73
|
+
strncpy_s(rec.name, 64, adr.to_string().c_str(), 64);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
79
76
|
}
|
|
80
77
|
|
|
81
|
-
void connManager::getDatabaseList(const module* mod)const
|
|
78
|
+
void connManager::getDatabaseList(const module* mod) const
|
|
82
79
|
{
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
80
|
+
igetDatabases* dbm =
|
|
81
|
+
dynamic_cast<igetDatabases*>(mod->m_commandExecuter.get());
|
|
82
|
+
const databases& dbs = dbm->dbs();
|
|
83
|
+
for (size_t j = 0; j < dbs.size(); j++)
|
|
84
|
+
{
|
|
85
|
+
|
|
86
|
+
if (dbs[j])
|
|
87
|
+
{
|
|
88
|
+
m_records.push_back(connection::record());
|
|
89
|
+
connection::record& rec = m_records[m_records.size() - 1];
|
|
90
|
+
rec.conId = (unsigned __int64)mod;
|
|
91
|
+
rec.cid = dbs[j]->clientID();
|
|
92
|
+
rec.dbid = (unsigned short)j;
|
|
93
|
+
strncpy_s(rec.name, 64, dbs[j]->name().c_str(), 64);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
98
96
|
}
|
|
99
97
|
|
|
100
|
-
const connManager::records& connManager::getRecords(unsigned __int64 conid,
|
|
98
|
+
const connManager::records& connManager::getRecords(unsigned __int64 conid,
|
|
99
|
+
int dbid) const
|
|
101
100
|
{
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
101
|
+
boost::mutex::scoped_lock lck(modulesMutex);
|
|
102
|
+
|
|
103
|
+
if (conid == 0)
|
|
104
|
+
getConnectionList();
|
|
105
|
+
else
|
|
106
|
+
{
|
|
107
|
+
const module* mod = getMod(conid);
|
|
108
|
+
if (mod)
|
|
109
|
+
{
|
|
110
|
+
boost::try_mutex::scoped_try_lock m(mod->mutex(),
|
|
111
|
+
boost::try_to_lock_t());
|
|
112
|
+
if (m.owns_lock())
|
|
113
|
+
{
|
|
114
|
+
if (dbid < 0)
|
|
115
|
+
getDatabaseList(mod);
|
|
116
|
+
else
|
|
117
|
+
{
|
|
118
|
+
const database* db = getDatabase(mod, dbid);
|
|
119
|
+
if (db)
|
|
120
|
+
{
|
|
121
|
+
const std::vector<boost::shared_ptr<table> >& tables =
|
|
122
|
+
db->tables();
|
|
123
|
+
for (size_t k = 0; k < tables.size(); k++)
|
|
124
|
+
{
|
|
125
|
+
const table* tb = tables[k].get();
|
|
126
|
+
if (tb)
|
|
127
|
+
{
|
|
128
|
+
m_records.push_back(connection::record());
|
|
129
|
+
connection::record& rec =
|
|
130
|
+
m_records[m_records.size() - 1];
|
|
131
|
+
rec.conId = (unsigned __int64)mod;
|
|
132
|
+
rec.cid = db->clientID();
|
|
133
|
+
|
|
134
|
+
strncpy_s(rec.name, 64, tb->name().c_str(), 64);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
return m_records;
|
|
141
143
|
}
|
|
142
144
|
|
|
143
145
|
void connManager::doDisconnect(unsigned __int64 conid)
|
|
144
146
|
{
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
147
|
+
module* mod = const_cast<module*>(getMod(conid));
|
|
148
|
+
if (mod)
|
|
149
|
+
{
|
|
150
|
+
igetDatabases* dbm =
|
|
151
|
+
dynamic_cast<igetDatabases*>(mod->m_commandExecuter.get());
|
|
152
|
+
const databases& dbs = dbm->dbs();
|
|
153
|
+
if (dbs.size())
|
|
154
|
+
mod->disconnect();
|
|
155
|
+
}
|
|
153
156
|
}
|
|
154
157
|
|
|
155
158
|
void connManager::disconnect(unsigned __int64 conid)
|
|
156
159
|
{
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
160
|
+
boost::try_mutex::scoped_lock m(modulesMutex, boost::try_to_lock_t());
|
|
161
|
+
|
|
162
|
+
if (m.owns_lock())
|
|
163
|
+
doDisconnect(conid);
|
|
164
|
+
else
|
|
165
|
+
{
|
|
166
|
+
for (int i = 0; i < 20; i++)
|
|
167
|
+
{
|
|
168
|
+
if (m.try_lock())
|
|
169
|
+
return doDisconnect(conid);
|
|
170
|
+
Sleep(100);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
170
173
|
}
|
|
171
174
|
|
|
172
175
|
void connManager::doDisconnectAll()
|
|
173
176
|
{
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
177
|
+
for (size_t i = 0; i < modules.size(); i++)
|
|
178
|
+
{
|
|
179
|
+
const module* mod = dynamic_cast<module*>(modules[i]);
|
|
180
|
+
doDisconnect((unsigned __int64)mod);
|
|
181
|
+
}
|
|
179
182
|
}
|
|
180
183
|
|
|
181
184
|
void connManager::disconnectAll()
|
|
182
185
|
{
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
186
|
+
boost::try_mutex::scoped_lock m(modulesMutex, boost::try_to_lock_t());
|
|
187
|
+
|
|
188
|
+
if (m.owns_lock())
|
|
189
|
+
doDisconnectAll();
|
|
190
|
+
else
|
|
191
|
+
{
|
|
192
|
+
for (int i = 0; i < 20; i++)
|
|
193
|
+
{
|
|
194
|
+
if (m.try_lock())
|
|
195
|
+
return doDisconnectAll();
|
|
196
|
+
;
|
|
197
|
+
Sleep(100);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
197
200
|
}
|
|
198
201
|
|
|
199
|
-
}//namespace transactd
|
|
200
|
-
}//namespace db
|
|
201
|
-
}//namespace bzs
|
|
202
|
+
} // namespace transactd
|
|
203
|
+
} // namespace db
|
|
204
|
+
} // namespace bzs
|
|
@@ -14,19 +14,24 @@
|
|
|
14
14
|
GNU General Public License for more details.
|
|
15
15
|
|
|
16
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
|
|
17
|
+
along with this program; if not, write to the Free Software
|
|
18
|
+
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
|
19
19
|
02111-1307, USA.
|
|
20
20
|
=================================================================*/
|
|
21
21
|
#include "connectionRecord.h"
|
|
22
22
|
#include <bzs/netsvc/server/IAppModule.h>
|
|
23
23
|
|
|
24
|
-
|
|
25
24
|
namespace bzs
|
|
26
25
|
{
|
|
27
26
|
namespace db
|
|
28
27
|
{
|
|
29
|
-
|
|
28
|
+
namespace engine
|
|
29
|
+
{
|
|
30
|
+
namespace mysql
|
|
31
|
+
{
|
|
32
|
+
class database;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
30
35
|
namespace transactd
|
|
31
36
|
{
|
|
32
37
|
|
|
@@ -35,26 +40,28 @@ class module;
|
|
|
35
40
|
class connManager
|
|
36
41
|
{
|
|
37
42
|
public:
|
|
43
|
+
typedef std::vector<connection::record> records;
|
|
38
44
|
|
|
39
|
-
typedef std::vector<connection::record> records;
|
|
40
45
|
private:
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
46
|
+
mutable records m_records;
|
|
47
|
+
unsigned __int64 m_me;
|
|
48
|
+
void getConnectionList() const;
|
|
49
|
+
void getDatabaseList(const module* mod) const;
|
|
50
|
+
const bzs::db::engine::mysql::database* getDatabase(const module* mod,
|
|
51
|
+
int dbid) const;
|
|
52
|
+
void doDisconnect(unsigned __int64 conid);
|
|
53
|
+
void doDisconnectAll();
|
|
54
|
+
|
|
48
55
|
public:
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
56
|
+
connManager(unsigned __int64 me) : m_me(me){};
|
|
57
|
+
virtual ~connManager();
|
|
58
|
+
const records& getRecords(unsigned __int64 conid, int dbid) const;
|
|
59
|
+
void disconnect(unsigned __int64 conid);
|
|
60
|
+
void disconnectAll();
|
|
54
61
|
};
|
|
55
62
|
|
|
56
|
-
}//namespace transactd
|
|
57
|
-
}//namespace db
|
|
58
|
-
}//namespace bzs
|
|
63
|
+
} // namespace transactd
|
|
64
|
+
} // namespace db
|
|
65
|
+
} // namespace bzs
|
|
59
66
|
|
|
60
|
-
#endif//BZS_DB_TRANSACTD_CONNMANAGER_H
|
|
67
|
+
#endif // BZS_DB_TRANSACTD_CONNMANAGER_H
|
|
@@ -14,15 +14,15 @@
|
|
|
14
14
|
GNU General Public License for more details.
|
|
15
15
|
|
|
16
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
|
|
17
|
+
along with this program; if not, write to the Free Software
|
|
18
|
+
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
|
19
19
|
02111-1307, USA.
|
|
20
20
|
=================================================================*/
|
|
21
21
|
#include <bzs/env/compiler.h>
|
|
22
22
|
#include <bzs/env/crosscompile.h>
|
|
23
23
|
|
|
24
|
-
#pragma
|
|
25
|
-
pragma_pack1
|
|
24
|
+
#pragma pack(push, 1)
|
|
25
|
+
pragma_pack1;
|
|
26
26
|
|
|
27
27
|
namespace bzs
|
|
28
28
|
{
|
|
@@ -31,39 +31,39 @@ namespace db
|
|
|
31
31
|
namespace transactd
|
|
32
32
|
{
|
|
33
33
|
namespace connection
|
|
34
|
-
{
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
34
|
+
{
|
|
35
|
+
struct record
|
|
36
|
+
{
|
|
37
|
+
record() : conId(0), cid(0), dbid(0)
|
|
38
|
+
{
|
|
39
|
+
name[0] = 0x00;
|
|
40
|
+
status = 0;
|
|
41
|
+
}
|
|
42
|
+
__int64 conId;
|
|
43
|
+
unsigned int cid;
|
|
44
|
+
unsigned short dbid;
|
|
45
|
+
char name[64];
|
|
46
|
+
union
|
|
47
|
+
{
|
|
48
|
+
char status;
|
|
49
|
+
struct
|
|
50
|
+
{
|
|
51
|
+
char inTransaction : 1;
|
|
52
|
+
char inSnapshot : 1;
|
|
53
|
+
char openNormal : 1;
|
|
54
|
+
char openReadOnly : 1;
|
|
55
|
+
char openEx : 1;
|
|
56
|
+
char dummy : 3;
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
} // connection
|
|
62
|
+
} // transactd
|
|
63
|
+
} // db
|
|
64
|
+
} // bzs
|
|
65
|
+
|
|
66
|
+
#pragma pack(pop)
|
|
67
|
+
pragma_pop;
|
|
60
68
|
|
|
61
|
-
|
|
62
|
-
}//transactd
|
|
63
|
-
}//db
|
|
64
|
-
}//bzs
|
|
65
|
-
|
|
66
|
-
#pragma option -a
|
|
67
|
-
pragma_pop
|
|
68
|
-
|
|
69
|
-
#endif //BZS_DB_TRANSACTD_CONNECTIONRECORD_H
|
|
69
|
+
#endif // BZS_DB_TRANSACTD_CONNECTIONRECORD_H
|