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
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
#ifndef BZS_NETSVC_SERVER_TPOOLSERVER_H
|
|
2
|
+
#define BZS_NETSVC_SERVER_TPOOLSERVER_H
|
|
1
3
|
/*=================================================================
|
|
2
4
|
Copyright (C) 2012 2013 BizStation Corp All rights reserved.
|
|
3
5
|
|
|
@@ -12,13 +14,10 @@
|
|
|
12
14
|
GNU General Public License for more details.
|
|
13
15
|
|
|
14
16
|
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
|
+
along with this program; if not, write to the Free Software
|
|
18
|
+
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
|
17
19
|
02111-1307, USA.
|
|
18
20
|
=================================================================*/
|
|
19
|
-
#ifndef BZS_NETSVC_SERVER_TPOOLSERVER_H
|
|
20
|
-
#define BZS_NETSVC_SERVER_TPOOLSERVER_H
|
|
21
|
-
|
|
22
21
|
#include "iserver.h"
|
|
23
22
|
#include <string>
|
|
24
23
|
#include <vector>
|
|
@@ -26,59 +25,55 @@
|
|
|
26
25
|
#include <boost/shared_ptr.hpp>
|
|
27
26
|
#include <boost/asio.hpp>
|
|
28
27
|
|
|
29
|
-
|
|
30
|
-
|
|
31
28
|
#define SERVER_SYNC_THREAD_PER_IOS
|
|
32
29
|
|
|
33
|
-
namespace boost
|
|
34
|
-
|
|
30
|
+
namespace boost
|
|
31
|
+
{
|
|
32
|
+
class condition_variable;
|
|
33
|
+
}
|
|
34
|
+
namespace bzs
|
|
35
35
|
{
|
|
36
|
-
namespace netsvc
|
|
36
|
+
namespace netsvc
|
|
37
37
|
{
|
|
38
|
-
namespace server
|
|
38
|
+
namespace server
|
|
39
39
|
{
|
|
40
40
|
class IAppModuleBuilder;
|
|
41
41
|
|
|
42
|
-
|
|
43
42
|
namespace tpool
|
|
44
43
|
{
|
|
45
44
|
extern unsigned int g_connections;
|
|
46
45
|
|
|
47
|
-
|
|
48
46
|
class connection;
|
|
49
47
|
class listener;
|
|
50
|
-
class server: public iserver, private boost::noncopyable
|
|
48
|
+
class server : public iserver, private boost::noncopyable
|
|
51
49
|
{
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
void run();
|
|
50
|
+
std::vector<boost::shared_ptr<listener> > m_listeners;
|
|
51
|
+
boost::asio::io_service m_ios;
|
|
52
|
+
boost::asio::deadline_timer m_timer;
|
|
53
|
+
const char* m_hostCheckName;
|
|
54
|
+
bool m_stopping;
|
|
55
|
+
void startTimer();
|
|
56
|
+
void doClose();
|
|
57
|
+
void onCheckInternlShutdown(const boost::system::error_code& e);
|
|
58
|
+
void run();
|
|
59
|
+
|
|
63
60
|
public:
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
61
|
+
explicit server(unsigned int thread_pool_size, const char* hostCheckName);
|
|
62
|
+
~server();
|
|
63
|
+
void start();
|
|
64
|
+
void stop();
|
|
65
|
+
static unsigned int m_threadPoolSize;
|
|
66
|
+
void registerErrorHandler(inotifyHandler* eh) { erh = eh; };
|
|
67
|
+
void addApplication(boost::shared_ptr<IAppModuleBuilder> app,
|
|
68
|
+
const std::string& address, const std::string& port);
|
|
69
|
+
boost::asio::io_service& ios() { return m_ios; }
|
|
70
|
+
const char* hostCheckName() { return m_hostCheckName; };
|
|
71
|
+
static inotifyHandler* erh;
|
|
76
72
|
};
|
|
77
73
|
|
|
78
|
-
}//namesapce tpool
|
|
79
|
-
}//namespace sever
|
|
80
|
-
}//namespace netsvc
|
|
81
|
-
}//namespace bzs
|
|
82
|
-
|
|
83
|
-
#endif //BZS_NETSVC_SERVER_TPOOLSERVER_H
|
|
74
|
+
} // namesapce tpool
|
|
75
|
+
} // namespace sever
|
|
76
|
+
} // namespace netsvc
|
|
77
|
+
} // namespace bzs
|
|
84
78
|
|
|
79
|
+
#endif // BZS_NETSVC_SERVER_TPOOLSERVER_H
|
|
@@ -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
|
|
|
@@ -25,6 +25,14 @@
|
|
|
25
25
|
#define BOOST_ERROR_CODE_HEADER_ONLY
|
|
26
26
|
#define BOOST_CHRONO_INLINED
|
|
27
27
|
|
|
28
|
+
#ifdef __BCPLUSPLUS__
|
|
29
|
+
#define BZS_LINK_BOOST_SYSTEM
|
|
30
|
+
#ifdef _WIN64
|
|
31
|
+
#define BZS_LINK_BOOST_TIMER
|
|
32
|
+
#define BZS_LINK_BOOST_CHRONO
|
|
33
|
+
#endif
|
|
34
|
+
#include <bzs/env/boost_bcb_link.h>
|
|
35
|
+
#endif
|
|
28
36
|
|
|
29
37
|
#pragma package(smart_init)
|
|
30
38
|
|
|
@@ -35,29 +43,52 @@ namespace rtl
|
|
|
35
43
|
|
|
36
44
|
boost_timer benchmark::t;
|
|
37
45
|
#ifdef BOOST_HIGH_RESOL_TIMER_ENABLE
|
|
38
|
-
boost_timer::time_point
|
|
46
|
+
boost_timer::time_point benchmark::m_start;
|
|
39
47
|
#endif
|
|
40
48
|
void benchmark::showTimeSec(bool result, const char* name)
|
|
41
49
|
{
|
|
42
50
|
if (result == true)
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
51
|
+
{
|
|
52
|
+
#ifdef BOOST_CPUTIMER_ENABLE
|
|
53
|
+
boost::timer::cpu_times elapsed = t.elapsed();
|
|
54
|
+
printf("%d msec %s\n", (int)(elapsed.wall / 1000000), name);
|
|
47
55
|
printf("%s\r\n", boost::timer::format(elapsed).c_str());
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
56
|
+
#else
|
|
57
|
+
#ifdef BOOST_HIGH_RESOL_TIMER_ENABLE
|
|
58
|
+
boost_timer::time_point p = boost_timer::now();
|
|
59
|
+
boost::chrono::nanoseconds ns = p - m_start;
|
|
60
|
+
printf("%d msec %s\n", (int)(ns.count() / 1000000), name);
|
|
61
|
+
#else
|
|
62
|
+
printf("%d msec %s\n", (int)(benchmark::t.elapsed() * 1000), name);
|
|
63
|
+
#endif
|
|
64
|
+
#endif
|
|
65
|
+
}
|
|
66
|
+
else
|
|
59
67
|
printf("Erorr %s\n", name);
|
|
60
68
|
}
|
|
69
|
+
|
|
70
|
+
int benchmark::stop()
|
|
71
|
+
{
|
|
72
|
+
#ifdef BOOST_CPUTIMER_ENABLE
|
|
73
|
+
boost::timer::cpu_times elapsed = t.elapsed();
|
|
74
|
+
return (int)(elapsed.wall / 1000000);
|
|
75
|
+
#else
|
|
76
|
+
#ifdef BOOST_HIGH_RESOL_TIMER_ENABLE
|
|
77
|
+
boost_timer::time_point p = boost_timer::now();
|
|
78
|
+
boost::chrono::nanoseconds ns = p - m_start;
|
|
79
|
+
return (int)(ns.count()/1000000;
|
|
80
|
+
#else
|
|
81
|
+
return (int)(t.elapsed() * 1000);
|
|
82
|
+
#endif
|
|
83
|
+
#endif
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
void benchmark::showTimes(int result, const char* name)
|
|
87
|
+
{
|
|
88
|
+
printf("------------------------------\n");
|
|
89
|
+
printf("%s%.4f(sec)\n", name, ((double)result) / 1000);
|
|
90
|
+
}
|
|
91
|
+
|
|
61
92
|
bool benchmark::report(boost::function<bool()> func, const char* name)
|
|
62
93
|
{
|
|
63
94
|
start();
|
|
@@ -69,28 +100,57 @@ bool benchmark::report(boost::function<bool()> func, const char* name)
|
|
|
69
100
|
|
|
70
101
|
void benchmark::report2(boost::function<void()> func, const char* name)
|
|
71
102
|
{
|
|
72
|
-
|
|
103
|
+
|
|
73
104
|
start();
|
|
74
105
|
func();
|
|
75
106
|
showTimeSec(1, name);
|
|
76
|
-
|
|
77
107
|
}
|
|
78
108
|
|
|
79
109
|
void benchmark::start()
|
|
80
110
|
{
|
|
81
|
-
|
|
82
|
-
|
|
111
|
+
|
|
112
|
+
#ifdef BOOST_CPUTIMER_ENABLE
|
|
83
113
|
t.stop();
|
|
84
114
|
t.start();
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
115
|
+
#else
|
|
116
|
+
#ifdef BOOST_HIGH_RESOL_TIMER_ENABLE
|
|
117
|
+
m_start = boost_timer::now();
|
|
118
|
+
#else
|
|
119
|
+
t.restart();
|
|
120
|
+
#endif
|
|
121
|
+
#endif
|
|
92
122
|
}
|
|
93
123
|
|
|
124
|
+
void benchmarkMt::start()
|
|
125
|
+
{
|
|
126
|
+
|
|
127
|
+
#ifdef BOOST_CPUTIMER_ENABLE
|
|
128
|
+
t.stop();
|
|
129
|
+
t.start();
|
|
130
|
+
#else
|
|
131
|
+
#ifdef BOOST_HIGH_RESOL_TIMER_ENABLE
|
|
132
|
+
m_start = boost_timer::now();
|
|
133
|
+
#else
|
|
134
|
+
t.restart();
|
|
135
|
+
#endif
|
|
136
|
+
#endif
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
int benchmarkMt::end()
|
|
140
|
+
{
|
|
141
|
+
#ifdef BOOST_CPUTIMER_ENABLE
|
|
142
|
+
boost::timer::cpu_times elapsed = t.elapsed();
|
|
143
|
+
return (int)(elapsed.wall / 1000);
|
|
144
|
+
#else
|
|
145
|
+
#ifdef BOOST_HIGH_RESOL_TIMER_ENABLE
|
|
146
|
+
boost_timer::time_point p = boost_timer::now();
|
|
147
|
+
boost::chrono::nanoseconds ns = p - m_start;
|
|
148
|
+
return (int)(ns.count()/1000;
|
|
149
|
+
#else
|
|
150
|
+
return (int)(t.elapsed() * 1000000);
|
|
151
|
+
#endif
|
|
152
|
+
#endif
|
|
153
|
+
}
|
|
94
154
|
|
|
95
|
-
}//namespace rtl
|
|
96
|
-
}//namespace bzs
|
|
155
|
+
} // namespace rtl
|
|
156
|
+
} // namespace bzs
|
data/source/bzs/rtl/benchmark.h
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
#ifndef
|
|
2
|
-
#define
|
|
1
|
+
#ifndef BZS_RTL_BOOKMARK_H
|
|
2
|
+
#define BZS_RTL_BOOKMARK_H
|
|
3
3
|
/*=================================================================
|
|
4
4
|
Copyright (C) 2013 BizStation Corp All rights reserved.
|
|
5
5
|
|
|
@@ -14,8 +14,8 @@
|
|
|
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 <boost/function.hpp>
|
|
@@ -24,20 +24,60 @@
|
|
|
24
24
|
//#define BOOST_HIGH_RESOL_TIMER_ENABLE
|
|
25
25
|
|
|
26
26
|
#if BOOST_VERSION > 104801
|
|
27
|
-
|
|
28
|
-
#ifdef BOOST_HIGH_RESOL_TIMER_ENABLE
|
|
29
|
-
#include <boost/chrono/system_clocks.hpp>
|
|
30
|
-
#include <boost/chrono.hpp>
|
|
31
|
-
typedef boost::chrono::high_resolution_clock boost_timer;
|
|
32
|
-
#else
|
|
33
|
-
#define BOOST_CPUTIMER_ENABLE
|
|
34
|
-
#include <boost/timer/timer.hpp>
|
|
35
|
-
typedef boost::timer::cpu_timer boost_timer;
|
|
36
|
-
#endif
|
|
37
27
|
|
|
28
|
+
#ifdef BOOST_HIGH_RESOL_TIMER_ENABLE
|
|
29
|
+
#include <boost/chrono/system_clocks.hpp>
|
|
30
|
+
#include <boost/chrono.hpp>
|
|
31
|
+
typedef boost::chrono::high_resolution_clock boost_timer;
|
|
38
32
|
#else
|
|
39
|
-
|
|
40
|
-
|
|
33
|
+
#define BOOST_CPUTIMER_ENABLE
|
|
34
|
+
#include <boost/timer/timer.hpp>
|
|
35
|
+
typedef boost::timer::cpu_timer boost_timer;
|
|
36
|
+
#endif
|
|
37
|
+
|
|
38
|
+
#else
|
|
39
|
+
#ifdef __APPLE__
|
|
40
|
+
#include <mach/mach_time.h>
|
|
41
|
+
#include <limits>
|
|
42
|
+
namespace boost
|
|
43
|
+
{
|
|
44
|
+
#define NANOSEC 1000000000
|
|
45
|
+
class timer
|
|
46
|
+
{
|
|
47
|
+
public:
|
|
48
|
+
timer()
|
|
49
|
+
{
|
|
50
|
+
mach_timebase_info(&_base);
|
|
51
|
+
_start_time = mach_absolute_time();
|
|
52
|
+
}
|
|
53
|
+
void restart() { _start_time = mach_absolute_time(); }
|
|
54
|
+
double elapsed() const
|
|
55
|
+
{
|
|
56
|
+
uint64_t e = mach_absolute_time() - _start_time;
|
|
57
|
+
int unit = _base.numer / _base.denom;
|
|
58
|
+
return double(e * unit) / NANOSEC; // seconds
|
|
59
|
+
}
|
|
60
|
+
double elapsed_max() const
|
|
61
|
+
{
|
|
62
|
+
return (double((std::numeric_limits<std::clock_t>::max)()) -
|
|
63
|
+
double(_start_time)) /
|
|
64
|
+
(double(_base.denom / _base.numer) / NANOSEC);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
double elapsed_min() const
|
|
68
|
+
{
|
|
69
|
+
return double(1) / double(double(_base.denom / _base.numer) / NANOSEC);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
private:
|
|
73
|
+
uint64_t _start_time;
|
|
74
|
+
mach_timebase_info_data_t _base;
|
|
75
|
+
}; // timer
|
|
76
|
+
}
|
|
77
|
+
#else
|
|
78
|
+
#include <boost/timer.hpp>
|
|
79
|
+
#endif
|
|
80
|
+
typedef boost::timer boost_timer;
|
|
41
81
|
|
|
42
82
|
#endif
|
|
43
83
|
|
|
@@ -49,17 +89,31 @@ namespace rtl
|
|
|
49
89
|
class benchmark
|
|
50
90
|
{
|
|
51
91
|
static boost_timer t;
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
92
|
+
#ifdef BOOST_HIGH_RESOL_TIMER_ENABLE
|
|
93
|
+
static boost_timer::time_point m_start;
|
|
94
|
+
#endif
|
|
55
95
|
public:
|
|
56
96
|
static bool report(boost::function<bool()> func, const char* name);
|
|
57
97
|
static void report2(boost::function<void()> func, const char* name);
|
|
58
98
|
static void start();
|
|
99
|
+
static int stop();
|
|
100
|
+
static void showTimes(int result, const char* name);
|
|
59
101
|
static void showTimeSec(bool result, const char* name);
|
|
60
|
-
|
|
61
102
|
};
|
|
62
103
|
|
|
63
|
-
|
|
64
|
-
|
|
104
|
+
// Multi thread version. Self measurement.
|
|
105
|
+
class benchmarkMt
|
|
106
|
+
{
|
|
107
|
+
boost_timer t;
|
|
108
|
+
#ifdef BOOST_HIGH_RESOL_TIMER_ENABLE
|
|
109
|
+
boost_timer::time_point m_start;
|
|
65
110
|
#endif
|
|
111
|
+
|
|
112
|
+
public:
|
|
113
|
+
void start();
|
|
114
|
+
int end();
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
} // namespace rtl
|
|
118
|
+
} // namespace bzs
|
|
119
|
+
#endif // BZS_RTL_BOOKMARK_H
|