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
|
@@ -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
|
|
|
@@ -24,11 +24,12 @@
|
|
|
24
24
|
#include <boost/asio.hpp>
|
|
25
25
|
#include <boost/thread/mutex.hpp>
|
|
26
26
|
|
|
27
|
-
/** Application framework interface
|
|
28
|
-
* IModuleBuilder: module builder.
|
|
27
|
+
/** Application framework interface
|
|
28
|
+
* IModuleBuilder: module builder.
|
|
29
29
|
* IAppModule :The module created for every session.
|
|
30
30
|
* This receives received data and returns a result.
|
|
31
|
-
* It will be done, if these interfaces are implement and a server's
|
|
31
|
+
* It will be done, if these interfaces are implement and a server's
|
|
32
|
+
*constructor is passed.
|
|
32
33
|
*/
|
|
33
34
|
|
|
34
35
|
namespace bzs
|
|
@@ -43,52 +44,138 @@ class iconnection;
|
|
|
43
44
|
#define EXECUTE_RESULT_SUCCESS 0
|
|
44
45
|
#define EXECUTE_RESULT_QUIT 1
|
|
45
46
|
#define EXECUTE_RESULT_FORCSE_ASYNC 2
|
|
46
|
-
#define EXECUTE_RESULT_FORCSE_SYNC
|
|
47
|
+
#define EXECUTE_RESULT_FORCSE_SYNC 3
|
|
47
48
|
|
|
48
49
|
typedef std::vector<boost::asio::const_buffer> buffers;
|
|
50
|
+
typedef std::vector<char> vector_buffer;
|
|
51
|
+
|
|
52
|
+
class IResultBuffer
|
|
53
|
+
{
|
|
54
|
+
public:
|
|
55
|
+
virtual void resize(size_t v) = 0;
|
|
56
|
+
virtual size_t size() const = 0;
|
|
57
|
+
virtual char* ptr() = 0;
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
class vecBuffer : public IResultBuffer
|
|
61
|
+
{
|
|
62
|
+
vector_buffer& m_vecbuf;
|
|
63
|
+
|
|
64
|
+
public:
|
|
65
|
+
vecBuffer(vector_buffer& v) : m_vecbuf(v) {}
|
|
66
|
+
void resize(size_t v) { m_vecbuf.resize(v); }
|
|
67
|
+
size_t size() const { return m_vecbuf.size(); }
|
|
68
|
+
virtual char* ptr() { return &m_vecbuf[0]; }
|
|
69
|
+
};
|
|
49
70
|
|
|
50
71
|
class IAppModule
|
|
51
72
|
{
|
|
52
73
|
public:
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
74
|
+
virtual ~IAppModule(){};
|
|
75
|
+
// virtual int execute(char* result, size_t& size, buffers* optionalData) =
|
|
76
|
+
// 0;
|
|
77
|
+
virtual int execute(IResultBuffer& result, size_t& size,
|
|
78
|
+
buffers* optionalData) = 0;
|
|
79
|
+
virtual size_t onRead(const char* data, size_t size, bool& complete) = 0;
|
|
80
|
+
virtual size_t onAccept(char* message, size_t bufsize) = 0;
|
|
81
|
+
virtual void reset() = 0;
|
|
82
|
+
virtual bool isShutDown() = 0;
|
|
83
|
+
virtual bool checkHost(const char* hostCheckname) = 0;
|
|
84
|
+
virtual void cleanup() = 0;
|
|
85
|
+
virtual boost::mutex& mutex() const = 0;
|
|
65
86
|
};
|
|
66
87
|
|
|
67
|
-
//Defines at Implementing of IAppModule , two variables below.
|
|
88
|
+
// Defines at Implementing of IAppModule , two variables below.
|
|
68
89
|
extern boost::mutex modulesMutex;
|
|
69
90
|
extern std::vector<IAppModule*> modules;
|
|
70
|
-
|
|
71
91
|
|
|
92
|
+
#define SERVER_TYPE_TPOOL 1
|
|
93
|
+
#define SERVER_TYPE_CPT 0
|
|
72
94
|
|
|
73
|
-
|
|
74
|
-
#define SERVER_TYPE_CPT 0
|
|
75
|
-
|
|
76
|
-
/**
|
|
95
|
+
/**
|
|
77
96
|
* used by worker thread
|
|
78
97
|
* use with dynamic_cast for your application
|
|
79
98
|
*/
|
|
80
99
|
class IAppModuleBuilder
|
|
81
100
|
{
|
|
82
101
|
public:
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
102
|
+
virtual ~IAppModuleBuilder(){};
|
|
103
|
+
virtual IAppModule*
|
|
104
|
+
createSessionModule(const boost::asio::ip::tcp::endpoint& endpoint,
|
|
105
|
+
iconnection* connection, bool tpool) = 0;
|
|
87
106
|
};
|
|
88
107
|
|
|
108
|
+
/* Currently, this writer used by resultWriter and request::serializeForExt only
|
|
109
|
+
*/
|
|
110
|
+
class netWriter
|
|
111
|
+
{
|
|
112
|
+
protected:
|
|
113
|
+
IResultBuffer* resultBuffer;
|
|
89
114
|
|
|
115
|
+
buffers* m_optionalData;
|
|
116
|
+
char* m_ptr;
|
|
117
|
+
char* m_curPtr;
|
|
118
|
+
unsigned int m_clientBuffferSize;
|
|
119
|
+
|
|
120
|
+
public:
|
|
121
|
+
enum eWriteMode
|
|
122
|
+
{
|
|
123
|
+
copyOnly,
|
|
124
|
+
curSeekOnly,
|
|
125
|
+
netwrite,
|
|
126
|
+
writeEnd
|
|
127
|
+
};
|
|
128
|
+
netWriter() : datalen(0) {}
|
|
129
|
+
virtual ~netWriter(){};
|
|
130
|
+
inline void setClientBuffferSize(unsigned int v)
|
|
131
|
+
{
|
|
132
|
+
m_clientBuffferSize = v;
|
|
133
|
+
if (bufferSize() < v + 100)
|
|
134
|
+
resize(v + 100);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
inline void resize(size_t v)
|
|
138
|
+
{
|
|
139
|
+
resultBuffer->resize(v);
|
|
140
|
+
m_ptr = resultBuffer->ptr();
|
|
141
|
+
};
|
|
142
|
+
inline size_t bufferSize() const { return resultBuffer->size(); };
|
|
143
|
+
inline buffers* optionalData() { return m_optionalData; };
|
|
144
|
+
inline char* ptr() const { return m_ptr; }
|
|
145
|
+
inline char* curPtr() const { return m_curPtr; }
|
|
146
|
+
virtual unsigned int resultLen() const = 0;
|
|
147
|
+
|
|
148
|
+
/* At non recordset operations, the datalen variable is a holder of total
|
|
149
|
+
send data size .
|
|
150
|
+
At recordset operations, the datalen variable is specify current
|
|
151
|
+
send data size - RETBUF_EXT_RESERVE_SIZE.
|
|
152
|
+
*/
|
|
153
|
+
size_t datalen;
|
|
154
|
+
|
|
155
|
+
/* Used by recordsetHndler only */
|
|
156
|
+
virtual size_t bufferSpace() const
|
|
157
|
+
{
|
|
158
|
+
return resultBuffer->size() - (curPtr() - m_ptr);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
virtual void reset(IResultBuffer* retBuf, buffers* optData)
|
|
162
|
+
{
|
|
163
|
+
resultBuffer = retBuf;
|
|
164
|
+
m_optionalData = optData;
|
|
165
|
+
datalen = 0;
|
|
166
|
+
m_ptr = resultBuffer->ptr();
|
|
167
|
+
}
|
|
168
|
+
virtual void beginExt(bool includeBlob) = 0;
|
|
169
|
+
virtual bool asyncWrite(const char* p, unsigned int n,
|
|
170
|
+
eWriteMode mode = copyOnly) = 0;
|
|
171
|
+
virtual bool write(const char* p, size_t n, eWriteMode mode = copyOnly) = 0;
|
|
172
|
+
virtual void incremetRows() = 0;
|
|
173
|
+
virtual unsigned short getParamMask(bool includeBlob) = 0;
|
|
174
|
+
virtual void writeHeadar(unsigned short paramMask, short result) = 0;
|
|
175
|
+
virtual unsigned int allreadySent() const = 0;
|
|
176
|
+
};
|
|
90
177
|
|
|
91
|
-
}//namespace server
|
|
92
|
-
}//namespace netsvc
|
|
93
|
-
}//namespace bzs
|
|
94
|
-
#endif//BZS_NETSVC_IAPPMODULE_H
|
|
178
|
+
} // namespace server
|
|
179
|
+
} // namespace netsvc
|
|
180
|
+
} // namespace bzs
|
|
181
|
+
#endif // BZS_NETSVC_IAPPMODULE_H
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
#ifndef BZS_NETSVC_SERVER_ISERVER_H
|
|
2
|
+
#define BZS_NETSVC_SERVER_ISERVER_H
|
|
1
3
|
/*=================================================================
|
|
2
4
|
Copyright (C) 2013 BizStation Corp All rights reserved.
|
|
3
5
|
|
|
@@ -12,18 +14,15 @@
|
|
|
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
|
-
|
|
20
|
-
#define BZS_NETSVC_SERVER_ISERVER_H
|
|
21
|
-
|
|
22
|
-
namespace bzs
|
|
21
|
+
namespace bzs
|
|
23
22
|
{
|
|
24
|
-
namespace netsvc
|
|
23
|
+
namespace netsvc
|
|
25
24
|
{
|
|
26
|
-
namespace server
|
|
25
|
+
namespace server
|
|
27
26
|
{
|
|
28
27
|
|
|
29
28
|
/** Super class have to implement multithread safety.
|
|
@@ -32,18 +31,18 @@ class inotifyHandler
|
|
|
32
31
|
{
|
|
33
32
|
|
|
34
33
|
public:
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
34
|
+
virtual ~inotifyHandler(){};
|
|
35
|
+
virtual void printError(const char* msg) = 0;
|
|
36
|
+
virtual void printInfo(const char* msg) = 0;
|
|
38
37
|
};
|
|
39
38
|
|
|
40
39
|
class iserver
|
|
41
40
|
{
|
|
42
41
|
public:
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
42
|
+
virtual ~iserver(){};
|
|
43
|
+
virtual void start() = 0;
|
|
44
|
+
virtual void stop() = 0;
|
|
45
|
+
virtual void registerErrorHandler(inotifyHandler*) = 0;
|
|
47
46
|
};
|
|
48
47
|
|
|
49
48
|
/** connection close method for application
|
|
@@ -52,14 +51,13 @@ class iconnection
|
|
|
52
51
|
{
|
|
53
52
|
|
|
54
53
|
public:
|
|
55
|
-
|
|
56
|
-
|
|
54
|
+
virtual ~iconnection(){};
|
|
55
|
+
virtual void close() = 0;
|
|
56
|
+
virtual void asyncWrite(const char* p, unsigned int) = 0;
|
|
57
57
|
};
|
|
58
58
|
|
|
59
|
+
} // namespace sever
|
|
60
|
+
} // namespace netsvc
|
|
61
|
+
} // namespace bzs
|
|
59
62
|
|
|
60
|
-
|
|
61
|
-
}//namespace netsvc
|
|
62
|
-
}//namespace bzs
|
|
63
|
-
|
|
64
|
-
#endif //BZS_NETSVC_SERVER_ISERVER_H
|
|
65
|
-
|
|
63
|
+
#endif // BZS_NETSVC_SERVER_ISERVER_H
|