transactd 2.4.5 → 3.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/CMakeLists.txt +1 -1
- data/README-JA.md +52 -529
- data/README.md +52 -523
- data/bin/common/tdclc_32_3_0.dll +0 -0
- data/bin/common/tdclc_64_3_0.dll +0 -0
- data/build/common/system.cmake +2 -1
- data/build/common/transactd_cl_common.cmake +3 -6
- data/build/swig/ruby/ruby.swg +85 -28
- data/build/swig/ruby/tdclrb_wrap.cpp +3195 -1578
- data/build/swig/tdcl.i +161 -5
- data/build/tdclc/CMakeLists.txt +1 -0
- data/build/tdclc/tdclc.cbproj +7 -1
- data/build/tdclc/tdclc.rc +4 -4
- data/build/tdclcpp/tdclcpp.rc +4 -4
- data/build/tdclcpp/tdclcpp_bc.cbproj +2 -5
- data/build/tdclrb/tdclrb.rc +4 -4
- data/source/bzs/db/blobStructs.h +1 -1
- data/source/bzs/db/engine/mysql/database.cpp +199 -74
- data/source/bzs/db/engine/mysql/database.h +47 -18
- data/source/bzs/db/engine/mysql/dbManager.cpp +1 -0
- data/source/bzs/db/engine/mysql/mysqlInternal.h +32 -8
- data/source/bzs/db/protocol/tdap/btrDate.cpp +110 -75
- data/source/bzs/db/protocol/tdap/btrDate.h +46 -21
- data/source/bzs/db/protocol/tdap/client/activeTable.cpp +18 -18
- data/source/bzs/db/protocol/tdap/client/activeTable.h +25 -25
- data/source/bzs/db/protocol/tdap/client/activeTableImple.h +10 -4
- data/source/bzs/db/protocol/tdap/client/client.cpp +6 -5
- data/source/bzs/db/protocol/tdap/client/client.h +82 -15
- data/source/bzs/db/protocol/tdap/client/database.cpp +531 -142
- data/source/bzs/db/protocol/tdap/client/database.h +19 -6
- data/source/bzs/db/protocol/tdap/client/dbDef.cpp +461 -408
- data/source/bzs/db/protocol/tdap/client/dbDef.h +11 -17
- data/source/bzs/db/protocol/tdap/client/dllmain.cpp +61 -13
- data/source/bzs/db/protocol/tdap/client/field.cpp +1592 -1398
- data/source/bzs/db/protocol/tdap/client/field.h +110 -121
- data/source/bzs/db/protocol/tdap/client/fields.h +40 -10
- data/source/bzs/db/protocol/tdap/client/filter.h +69 -55
- data/source/bzs/db/protocol/tdap/client/groupQuery.cpp +296 -164
- data/source/bzs/db/protocol/tdap/client/groupQuery.h +77 -25
- data/source/bzs/db/protocol/tdap/client/memRecord.cpp +31 -13
- data/source/bzs/db/protocol/tdap/client/memRecord.h +31 -21
- data/source/bzs/db/protocol/tdap/client/nsDatabase.cpp +1 -1
- data/source/bzs/db/protocol/tdap/client/nsDatabase.h +4 -1
- data/source/bzs/db/protocol/tdap/client/nsTable.cpp +69 -24
- data/source/bzs/db/protocol/tdap/client/nsTable.h +3 -1
- data/source/bzs/db/protocol/tdap/client/recordset.cpp +1 -0
- data/source/bzs/db/protocol/tdap/client/recordsetImple.h +46 -27
- data/source/bzs/db/protocol/tdap/client/request.h +2 -1
- data/source/bzs/db/protocol/tdap/client/serializer.cpp +44 -9
- data/source/bzs/db/protocol/tdap/client/serializer.h +1 -1
- data/source/bzs/db/protocol/tdap/client/sqlBuilder.cpp +182 -76
- data/source/bzs/db/protocol/tdap/client/sqlBuilder.h +23 -12
- data/source/bzs/db/protocol/tdap/client/stringConverter.h +8 -10
- data/source/bzs/db/protocol/tdap/client/table.cpp +172 -93
- data/source/bzs/db/protocol/tdap/client/table.h +112 -37
- data/source/bzs/db/protocol/tdap/client/trdboostapi.h +17 -0
- data/source/bzs/db/protocol/tdap/client/trdboostapiInternal.h +0 -1
- data/source/bzs/db/protocol/tdap/client/trdclcppautolink.h +0 -2
- data/source/bzs/db/protocol/tdap/client/trdormapi.h +1 -1
- data/source/bzs/db/protocol/tdap/fieldComp.h +698 -14
- data/source/bzs/db/protocol/tdap/myDateTime.cpp +723 -307
- data/source/bzs/db/protocol/tdap/myDateTime.h +294 -0
- data/source/bzs/db/protocol/tdap/mysql/databaseSchema.cpp +164 -54
- data/source/bzs/db/protocol/tdap/mysql/databaseSchema.h +6 -3
- data/source/bzs/db/protocol/tdap/mysql/recordsetReader.h +133 -550
- data/source/bzs/db/protocol/tdap/mysql/request.h +6 -5
- data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.cpp +217 -82
- data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.h +1 -1
- data/source/bzs/db/protocol/tdap/tdapRequest.h +4 -9
- data/source/bzs/db/protocol/tdap/tdapSchema.cpp +808 -17
- data/source/bzs/db/protocol/tdap/tdapSchema.h +656 -164
- data/source/bzs/db/protocol/tdap/tdapcapi.h +130 -28
- data/source/bzs/db/protocol/tdap/uri.h +40 -32
- data/source/bzs/db/transactd/connManager.cpp +1 -1
- data/source/bzs/db/transactd/transactd.cpp +7 -0
- data/source/bzs/env/compiler.h +107 -94
- data/source/bzs/env/crosscompile.cpp +24 -12
- data/source/bzs/env/crosscompile.h +75 -6
- data/source/bzs/env/mbcswchrLinux.cpp +2 -2
- data/source/bzs/env/tcharMinGW.h +4 -0
- data/source/bzs/example/changeSchema.cpp +22 -17
- data/source/bzs/example/queryData.cpp +4 -0
- data/source/bzs/netsvc/client/iconnection.h +3 -1
- data/source/bzs/netsvc/client/tcpClient.h +10 -3
- data/source/bzs/rtl/stringBuffers.cpp +7 -0
- data/source/bzs/test/tdclatl/bench_query_atl.js +6 -0
- data/source/bzs/test/tdclatl/bench_tdclatl.js +8 -1
- data/source/bzs/test/tdclatl/test_query_atl.js +22 -2
- data/source/bzs/test/tdclatl/test_v3.js +1017 -0
- data/source/bzs/test/tdclphp/transactd_Test.php +55 -21
- data/source/bzs/test/tdclphp/transactd_datetime_Test.php +0 -5
- data/source/bzs/test/tdclphp/transactd_pool_Test.php +2 -0
- data/source/bzs/test/tdclphp/transactd_v3_Test.php +743 -0
- data/source/bzs/test/tdclrb/transactd_datetime_spec.rb +0 -5
- data/source/bzs/test/tdclrb/transactd_pool_spec.rb +2 -0
- data/source/bzs/test/tdclrb/transactd_spec.rb +39 -16
- data/source/bzs/test/tdclrb/transactd_v3_spec.rb +748 -0
- data/source/bzs/test/transactdBench/transactdBench.cpp +55 -58
- data/source/bzs/test/transactdBench/transactdBench2.cpp +1 -3
- data/source/bzs/test/trdclengn/testField.h +3305 -0
- data/source/bzs/test/trdclengn/test_tdclcpp_v3.cpp +1050 -0
- data/source/bzs/test/trdclengn/test_trdclengn.cpp +112 -190
- data/source/bzs/test/trdclengn/testbase.h +137 -0
- data/source/global/ormsrcgen/srcgen.cpp +23 -12
- data/source/global/ormsrcgen/template/ormDataClass_template.h +2 -0
- data/source/global/querystmts/querystmts.cpp +2 -3
- data/source/global/tdclatl/Bitset.cpp +38 -0
- data/source/global/tdclatl/Bitset.h +63 -0
- data/source/global/tdclatl/Database.cpp +59 -18
- data/source/global/tdclatl/Database.h +7 -4
- data/source/global/tdclatl/DbDef.cpp +6 -6
- data/source/global/tdclatl/DbDef.h +2 -1
- data/source/global/tdclatl/Field.cpp +112 -0
- data/source/global/tdclatl/Field.h +19 -5
- data/source/global/tdclatl/FieldDef.cpp +137 -16
- data/source/global/tdclatl/FieldDef.h +18 -2
- data/source/global/tdclatl/FieldDefs.cpp +54 -1
- data/source/global/tdclatl/FieldDefs.h +3 -0
- data/source/global/tdclatl/GroupQuery.cpp +8 -8
- data/source/global/tdclatl/QueryBase.cpp +65 -0
- data/source/global/tdclatl/QueryBase.h +10 -0
- data/source/global/tdclatl/Record.cpp +33 -2
- data/source/global/tdclatl/Record.h +3 -1
- data/source/global/tdclatl/RecordsetQuery.cpp +42 -0
- data/source/global/tdclatl/RecordsetQuery.h +8 -0
- data/source/global/tdclatl/Table.cpp +127 -3
- data/source/global/tdclatl/Table.h +10 -1
- data/source/global/tdclatl/TableDef.cpp +41 -8
- data/source/global/tdclatl/TableDef.h +7 -2
- data/source/global/tdclatl/activeTable.cpp +40 -71
- data/source/global/tdclatl/resource.h +0 -0
- data/source/global/tdclatl/tdclatl.idl +222 -28
- data/source/linux/tchar.h +100 -96
- data/transactd.gemspec +2 -2
- metadata +13 -11
- data/BUILD_UNIX-JA.md +0 -161
- data/BUILD_WIN-JA.md +0 -326
- data/README_ORMSRCGEN-JA.md +0 -115
- data/README_ORMSRCGEN.md +0 -118
- data/RELEASE_NOTE-JA.md +0 -356
- data/RELEASE_NOTE.md +0 -360
- data/bin/common/tdclc_32_2_4.dll +0 -0
- data/bin/common/tdclc_64_2_4.dll +0 -0
- data/source/bzs/test/trdclengn/test_blob.cpp +0 -375
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: transactd
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 3.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- BizStation Corp.
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2015-
|
|
11
|
+
date: 2015-12-25 00:00:00.000000000 Z
|
|
12
12
|
dependencies: []
|
|
13
13
|
description: Transactd client for ruby gem
|
|
14
14
|
email: transactd@bizstation.jp
|
|
@@ -19,8 +19,8 @@ extra_rdoc_files: []
|
|
|
19
19
|
files:
|
|
20
20
|
- CMakeLists.txt
|
|
21
21
|
- build/tdclrb/bldgem/extconf.rb
|
|
22
|
-
- bin/common/
|
|
23
|
-
- bin/common/
|
|
22
|
+
- bin/common/tdclc_32_3_0.dll
|
|
23
|
+
- bin/common/tdclc_64_3_0.dll
|
|
24
24
|
- source/bzs/db/blobBuffer.h
|
|
25
25
|
- source/bzs/db/blobStructs.h
|
|
26
26
|
- source/bzs/db/engine/mysql/bookmark.h
|
|
@@ -106,6 +106,7 @@ files:
|
|
|
106
106
|
- source/bzs/db/protocol/tdap/client/trnsctcl.def
|
|
107
107
|
- source/bzs/db/protocol/tdap/fieldComp.h
|
|
108
108
|
- source/bzs/db/protocol/tdap/myDateTime.cpp
|
|
109
|
+
- source/bzs/db/protocol/tdap/myDateTime.h
|
|
109
110
|
- source/bzs/db/protocol/tdap/mysql/characterset.cpp
|
|
110
111
|
- source/bzs/db/protocol/tdap/mysql/characterset.h
|
|
111
112
|
- source/bzs/db/protocol/tdap/mysql/databaseSchema.cpp
|
|
@@ -186,12 +187,14 @@ files:
|
|
|
186
187
|
- source/bzs/test/tdclatl/bench_query_atl.js
|
|
187
188
|
- source/bzs/test/tdclatl/bench_tdclatl.js
|
|
188
189
|
- source/bzs/test/tdclatl/test_query_atl.js
|
|
190
|
+
- source/bzs/test/tdclatl/test_v3.js
|
|
189
191
|
- source/bzs/test/tdclphp/bench.php
|
|
190
192
|
- source/bzs/test/tdclphp/transactd_blob_Test.php
|
|
191
193
|
- source/bzs/test/tdclphp/transactd_datetime_Test.php
|
|
192
194
|
- source/bzs/test/tdclphp/transactd_kanjischema_Test.php
|
|
193
195
|
- source/bzs/test/tdclphp/transactd_pool_Test.php
|
|
194
196
|
- source/bzs/test/tdclphp/transactd_Test.php
|
|
197
|
+
- source/bzs/test/tdclphp/transactd_v3_Test.php
|
|
195
198
|
- source/bzs/test/tdclrb/bench_tdclcpp.rb
|
|
196
199
|
- source/bzs/test/tdclrb/prepare.rb
|
|
197
200
|
- source/bzs/test/tdclrb/transactd_blob_spec.rb
|
|
@@ -199,6 +202,7 @@ files:
|
|
|
199
202
|
- source/bzs/test/tdclrb/transactd_kanjischema_spec.rb
|
|
200
203
|
- source/bzs/test/tdclrb/transactd_pool_spec.rb
|
|
201
204
|
- source/bzs/test/tdclrb/transactd_spec.rb
|
|
205
|
+
- source/bzs/test/tdclrb/transactd_v3_spec.rb
|
|
202
206
|
- source/bzs/test/transactdBench/query_bench.cpp
|
|
203
207
|
- source/bzs/test/transactdBench/scaling_bench.cpp
|
|
204
208
|
- source/bzs/test/transactdBench/transactdBench.cpp
|
|
@@ -207,7 +211,9 @@ files:
|
|
|
207
211
|
- source/bzs/test/transactdBench/workerBase.h
|
|
208
212
|
- source/bzs/test/transactdBench/workerMySQLImple.h
|
|
209
213
|
- source/bzs/test/transactdBench/workerTransactdImple.h
|
|
210
|
-
- source/bzs/test/trdclengn/
|
|
214
|
+
- source/bzs/test/trdclengn/testbase.h
|
|
215
|
+
- source/bzs/test/trdclengn/testField.h
|
|
216
|
+
- source/bzs/test/trdclengn/test_tdclcpp_v3.cpp
|
|
211
217
|
- source/bzs/test/trdclengn/test_trdclengn.cpp
|
|
212
218
|
- source/global/boost/sha1.hpp
|
|
213
219
|
- source/global/ormsrcgen/confParam.h
|
|
@@ -225,6 +231,8 @@ files:
|
|
|
225
231
|
- source/global/querystmts/querystmts.cpp
|
|
226
232
|
- source/global/tdclatl/activeTable.cpp
|
|
227
233
|
- source/global/tdclatl/activeTable.h
|
|
234
|
+
- source/global/tdclatl/Bitset.cpp
|
|
235
|
+
- source/global/tdclatl/Bitset.h
|
|
228
236
|
- source/global/tdclatl/Bookmark.cpp
|
|
229
237
|
- source/global/tdclatl/Bookmark.h
|
|
230
238
|
- source/global/tdclatl/ConnectParams.cpp
|
|
@@ -319,17 +327,11 @@ files:
|
|
|
319
327
|
- build/tdclcpp/CMakeLists.txt
|
|
320
328
|
- build/tdclcpp/tdclcpp.rc
|
|
321
329
|
- build/tdclcpp/tdclcpp_bc.cbproj
|
|
322
|
-
- ./BUILD_UNIX-JA.md
|
|
323
|
-
- ./BUILD_WIN-JA.md
|
|
324
330
|
- ./CMakeLists.txt
|
|
325
331
|
- ./COPYING
|
|
326
332
|
- ./index_ja.html
|
|
327
333
|
- ./README-JA.md
|
|
328
334
|
- ./README.md
|
|
329
|
-
- ./README_ORMSRCGEN-JA.md
|
|
330
|
-
- ./README_ORMSRCGEN.md
|
|
331
|
-
- ./RELEASE_NOTE-JA.md
|
|
332
|
-
- ./RELEASE_NOTE.md
|
|
333
335
|
- ./transactd.gemspec
|
|
334
336
|
homepage: http://www.bizstation.jp/ja/transactd
|
|
335
337
|
licenses:
|
data/BUILD_UNIX-JA.md
DELETED
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
Transactd ビルドガイド for Unix
|
|
2
|
-
============================================================
|
|
3
|
-
|
|
4
|
-
1. ビルド環境の準備
|
|
5
|
-
------------------------------------------------------------
|
|
6
|
-
Transactd Plugin および Transactd クライアントは、Unix上のGCC(64bit)
|
|
7
|
-
でビルドできます。ここでは、以下の環境でのビルドを想定して進めます。
|
|
8
|
-
|
|
9
|
-
* Ubuntu 12.10 x86_64
|
|
10
|
-
* gcc 4.4.6
|
|
11
|
-
|
|
12
|
-
ビルドにはCMake 2.8.12以上、gccバージョン4.4.6以上、boost 1.58(以上)が必須です。
|
|
13
|
-
また、CentOS(GCC4.4以上 or clang LLVM 3.4)、Mac OS X 10.9(GCC4.4以上
|
|
14
|
-
または Xcode5.1 LLVM 3.4)でも同様にビルドできます。
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
2. CMakeのインストール
|
|
18
|
-
------------------------------------------------------------
|
|
19
|
-
[CMake](http://www.cmake.org)をインストールします。
|
|
20
|
-
```
|
|
21
|
-
sudo aptitude install cmake
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
CentOSでは
|
|
25
|
-
```
|
|
26
|
-
sudo yum install cmake
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
Mac OS Xでは、バイナリ配布をアプリケーションフォルダにインストールして
|
|
30
|
-
`/Applications/CMake.app/Contents/bin`にパスを通します。
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
3. Boost C++ Libraries のダウンロードとビルド
|
|
35
|
-
------------------------------------------------------------
|
|
36
|
-
[Boostのダウンロードページ](http://www.boost.org/users/download)から
|
|
37
|
-
ソースコードをダウンロードし、解凍します。
|
|
38
|
-
```
|
|
39
|
-
cd ~
|
|
40
|
-
wget http://sourceforge.net/projects/boost/files/boost/1.58.0/boost_1_58_0.tar.gz/download -O boost_1_58_0.tar.gz
|
|
41
|
-
tar xzf boost_1_58_0.tar.gz
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
以下のコマンドを実行しBoostのビルドを行います。
|
|
45
|
-
```
|
|
46
|
-
cd ~/boost_1_58_0
|
|
47
|
-
./bootstrap.sh --with-libraries=chrono,filesystem,system,thread,timer,serialization,program_options
|
|
48
|
-
./b2 cxxflags=-fPIC
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
4. サーバープラグインとクライアントの両方をビルド
|
|
54
|
-
------------------------------------------------------------
|
|
55
|
-
クライアントのみをビルドしたい場合はこのステップを飛ばしてください。
|
|
56
|
-
|
|
57
|
-
### 4-1 MySQLソースコードのダウンロード
|
|
58
|
-
[MySQL Community Serverのダウンロードページ](http://dev.mysql.com/downloads/mysql)
|
|
59
|
-
からソースコードをダウンロードし、解凍します。
|
|
60
|
-
```
|
|
61
|
-
cd ~
|
|
62
|
-
wget http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.25.tar.gz
|
|
63
|
-
tar xzf mysql-5.6.25.tar.gz
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
### 4-2 Transactd Pluginソースコードのダウンロード
|
|
68
|
-
[Transactd Pluginのダウンロードページ](http://www.bizstation.jp/al/transactd/download/index.asp)
|
|
69
|
-
からソースコードをダウンロードします。
|
|
70
|
-
|
|
71
|
-
ダウンロードしたソースコードは、4-1で展開したMySQLソースコードの
|
|
72
|
-
pluginディレクトリに展開します。
|
|
73
|
-
```
|
|
74
|
-
cd ~
|
|
75
|
-
wget http://www.bizstation.jp/al/transactd/download/transactd-2.4.2/transactd-source-2.4.2.zip
|
|
76
|
-
#Mac OS Xでは
|
|
77
|
-
#curl -O http://www.bizstation.jp/al/transactd/download/transactd-2.4.2/transactd-source-2.4.2.zip
|
|
78
|
-
unzip -q transactd-source-2.4.2.zip -d transactd
|
|
79
|
-
mv transactd ~/mysql-5.6.25/plugin/
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
### 4-3 CMakeの実行
|
|
84
|
-
MySQL 5.5/5.6 MariaDB 5.5/10.0の場合は以下のコマンドを実行します。オプションの意味はコマンドの後に記載しています。
|
|
85
|
-
```
|
|
86
|
-
cd ~/mysql-5.6.25
|
|
87
|
-
mkdir x64
|
|
88
|
-
cd x64
|
|
89
|
-
cmake .. -DBOOST_ROOT=~/boost_1_58_0 \
|
|
90
|
-
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.6.25 \
|
|
91
|
-
-DTRANSACTD_CLIENTS_PREFIX=/usr/lib \
|
|
92
|
-
-DTRANSACTD_PREFIX=/usr/local/transactd
|
|
93
|
-
```
|
|
94
|
-
MySQL 5.7の場合は以下のコマンドを実行します。
|
|
95
|
-
```
|
|
96
|
-
cd ~/mysql-5.7.8-rc
|
|
97
|
-
mkdir x64
|
|
98
|
-
cd x64
|
|
99
|
-
cmake .. -DBOOST_ROOT=~/boost_1_58_0 \
|
|
100
|
-
-DWITH_BOOST=~/boost_1_58_0 \
|
|
101
|
-
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.7.8-rc \
|
|
102
|
-
-DTRANSACTD_CLIENTS_PREFIX=/usr/lib \
|
|
103
|
-
-DTRANSACTD_PREFIX=/usr/local/transactd
|
|
104
|
-
```
|
|
105
|
-
* `CMAKE_INSTALL_PREFIX` に指定するのは、これからビルドするMySQLのインストール先
|
|
106
|
-
です。
|
|
107
|
-
***すでにインストール済みのMySQLがある場合に、それと同じパスを指定すると、上書
|
|
108
|
-
きされてしまいます。上書きしたくないときは異なるパスを指定してください。***
|
|
109
|
-
* `TRANSACTD_CLIENTS_PREFIX` に指定するのは、これからビルドするクライアントの
|
|
110
|
-
インストール先です。デフォルトは`/usr/lib`です。
|
|
111
|
-
* `TRANSACTD_PREFIX`に指定するのは、これからビルドするテストやベンチマークの
|
|
112
|
-
プログラムのインストール先です。デフォルトは`/usr/local/transactd`です。
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
### 4-4 ビルド
|
|
116
|
-
CMakeが完了するとMakefileが生成されているので、makeコマンドでビルド・インストール
|
|
117
|
-
します。
|
|
118
|
-
```
|
|
119
|
-
make
|
|
120
|
-
make install
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
5. クライアントライブラリのみをビルド
|
|
126
|
-
------------------------------------------------------------
|
|
127
|
-
### 5-1 Transactd Pluginソースコードのダウンロード
|
|
128
|
-
[Transactd Pluginのダウンロードページ](http://www.bizstation.jp/al/transactd/download/index.asp)
|
|
129
|
-
からソースコードをダウンロードします。
|
|
130
|
-
```
|
|
131
|
-
cd ~
|
|
132
|
-
wget http://www.bizstation.jp/al/transactd/download/transactd-2.4.2/transactd-source-2.4.2.zip
|
|
133
|
-
#Mac OS Xでは
|
|
134
|
-
#curl curl -O http://www.bizstation.jp/al/transactd/download/transactd-2.4.2/transactd-source-2.4.2.zip
|
|
135
|
-
unzip -q transactd-source-2.4.2.zip -d transactd
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
### 5-2 CMakeの実行
|
|
139
|
-
以下のコマンドを実行します。オプションの意味はコマンドの後に記載しています。
|
|
140
|
-
```
|
|
141
|
-
cd ~/transactd
|
|
142
|
-
mkdir x64
|
|
143
|
-
cd x64
|
|
144
|
-
cmake .. -DWITH_TRANSACTD_SERVER=OFF -DWITH_TRANSACTD_CLIENTS=ON \
|
|
145
|
-
-DBOOST_ROOT=~/boost_1_58_0 \
|
|
146
|
-
-DTRANSACTD_CLIENTS_PREFIX=/usr/lib \
|
|
147
|
-
-DTRANSACTD_PREFIX=/usr/local/transactd
|
|
148
|
-
```
|
|
149
|
-
* `TRANSACTD_CLIENTS_PREFIX` に指定するのは、これからビルドするクライアントの
|
|
150
|
-
インストール先です。デフォルトは`/usr/lib`です。
|
|
151
|
-
* `TRANSACTD_PREFIX`に指定するのは、これからビルドするテストやベンチマークの
|
|
152
|
-
プログラムのインストール先です。デフォルトは`/usr/local/transactd`です。
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
### 5-3 ビルド
|
|
156
|
-
CMakeが完了するとMakefileが生成されているので、makeコマンドでビルド・インストール
|
|
157
|
-
します。
|
|
158
|
-
```
|
|
159
|
-
make
|
|
160
|
-
make install
|
|
161
|
-
```
|
data/BUILD_WIN-JA.md
DELETED
|
@@ -1,326 +0,0 @@
|
|
|
1
|
-
Transactd ビルドガイド for Windows
|
|
2
|
-
============================================================
|
|
3
|
-
|
|
4
|
-
1. コンパイラの準備
|
|
5
|
-
------------------------------------------------------------
|
|
6
|
-
Transactd Plugin および Transactd クライアントは、Windows上のVisual Studio
|
|
7
|
-
(32bit/64bit)でビルドできます。
|
|
8
|
-
Transactd Pluginは、MySQLとともにビルドしますので、MySQLの要求するコンパイラに
|
|
9
|
-
合わせてビルドします。MySQL 5.7は、Visual Studio Express 2013、それ以外の
|
|
10
|
-
MySQL/MariaDBのバージョンはVisual Studio Express 2010を使用してビルドします。
|
|
11
|
-
|
|
12
|
-
クライアントはEmbarcaderoのコンパイラーC++ Builder XEシリーズでもビルドできます。
|
|
13
|
-
[クライアントのみをビルド]の項を参照してください。)
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
MySQL 5.7は以下のコンパイラをダウンロードしてインストールします。
|
|
17
|
-
* [Visual Studio Express 2013 with Update 5 for Windows Desktop
|
|
18
|
-
ダウンロードページ(Microsoft)]
|
|
19
|
-
(http://go.microsoft.com/fwlink/?LinkId=532500&clcid=0x411)
|
|
20
|
-
|
|
21
|
-
MySQL 5.5/5.6、MariaDB 5.5/10.0は以下のコンパイラとSDKをダウンロードし
|
|
22
|
-
てインストールします。
|
|
23
|
-
|
|
24
|
-
* [Visual Studio 2010 Express ダウンロードページ(Microsoft)](
|
|
25
|
-
http://www.microsoft.com/visualstudio/jpn/downloads#d-2010-express)
|
|
26
|
-
* [Windows SDK for Windows 7 ダウンロードページ(Microsoft Download Center)](
|
|
27
|
-
http://www.microsoft.com/en-us/download/details.aspx?id=8442)
|
|
28
|
-
(GRMSDKX_EN_DVD.iso をダウンロードし、マウントしてインストーラを実行)
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
### Visual Studioコマンドプロンプトの起動方法
|
|
32
|
-
後述する手順の中で、Visual Studioコマンドプロンプトを開くことがあります。
|
|
33
|
-
|
|
34
|
-
MySQL 5.5/5.6、MariaDB 5.5/10.0は以下の手順でVisual Studioコマンドプロンプトを
|
|
35
|
-
開きます。
|
|
36
|
-
|
|
37
|
-
[32Bit]
|
|
38
|
-
* [スタートメニュー]-[すべてのプログラム]-[Microsoft Visual Studio 2010 Express]-
|
|
39
|
-
[Visual Studio コマンドプロンプト (2010)]を選択し起動します。
|
|
40
|
-
|
|
41
|
-
[64Bit]
|
|
42
|
-
*Visual Studio 2010 Express には、64bit版ビルドツール用の Visual Studioコマンド
|
|
43
|
-
プロンプトが付属しません。代わりに、64bit用ビルドツールのパスを設定するための
|
|
44
|
-
バッチファイルを作成し、そこから起動します。
|
|
45
|
-
以下の内容のファイルを作成し、`set64env.cmd`という名前でデスクトップに保存します。
|
|
46
|
-
```
|
|
47
|
-
%comspec% /k "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
MySQL 5.7は以下の手順でVisual Studioコマンドプロンプトを開きます。
|
|
51
|
-
[32Bit]
|
|
52
|
-
* [スタートメニュー]-[すべてのプログラム]-[Microsoft Visual Studio 2013]-
|
|
53
|
-
[Visual Studio ツール]-[VS2013 x86 Native Tools コマンド プロンプト]を選択し起動します。
|
|
54
|
-
|
|
55
|
-
[64Bit]
|
|
56
|
-
* [スタートメニュー]-[すべてのプログラム]-[Microsoft Visual Studio 2013]-
|
|
57
|
-
[Visual Studio ツール]-[VS2013 x64 Cross Tools コマンド プロンプト]を選択し起動します。
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
2. CMakeのダウンロードとインストール
|
|
62
|
-
------------------------------------------------------------
|
|
63
|
-
[CMake ダウンロードページ](http://www.cmake.org/cmake/resources/software.html)か
|
|
64
|
-
らWindows (Win32 Installer) cmake-2.8.12.2-win32-x86.exe をダウンロードし実行します。
|
|
65
|
-
|
|
66
|
-
途中、「Add CMake to the system PATH for all(or current) users」を選択し、
|
|
67
|
-
cmakeの実行ファイルにパスが通るようにします。
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
3. Boost C++ Libraries のダウンロードとインストール
|
|
72
|
-
------------------------------------------------------------
|
|
73
|
-
boostはソースからビルドします。
|
|
74
|
-
|
|
75
|
-
### ソースからのビルド
|
|
76
|
-
[Boostのダウンロードページ](http://www.boost.org/users/download)からソースコードを
|
|
77
|
-
ダウンロードし、解凍します。ここでは、以下のフォルダに保存したものとします。
|
|
78
|
-
```
|
|
79
|
-
C:\boost\boost_1_58_0
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
Visual Studioコマンドプロンプトを起動します。以下のコマンドを実行し、Boostのビル
|
|
83
|
-
ドを行います。
|
|
84
|
-
```
|
|
85
|
-
cd C:\boost\boost_1_58_0
|
|
86
|
-
bootstrap.bat
|
|
87
|
-
|
|
88
|
-
@REM Visula studio 2010 64bitの場合
|
|
89
|
-
bjam.exe toolset=msvc-10.0 threading=multi address-model=64 architecture=x86 ^
|
|
90
|
-
--with-chrono --with-filesystem --with-system --with-thread --with-timer ^
|
|
91
|
-
--with-serialization --with-program_options ^
|
|
92
|
-
variant=debug,release link=static runtime-link=static,shared
|
|
93
|
-
|
|
94
|
-
@REM Visula studio 2010 32bitの場合
|
|
95
|
-
bjam.exe toolset=msvc-10.0 threading=multi architecture=x86 ^
|
|
96
|
-
--with-chrono --with-filesystem --with-system --with-thread --with-timer ^
|
|
97
|
-
--with-serialization --with-program_options ^
|
|
98
|
-
variant=debug,release link=static runtime-link=static,shared
|
|
99
|
-
|
|
100
|
-
@REM Visula studio 2013 64bitの場合
|
|
101
|
-
bjam.exe toolset=msvc-12.0 threading=multi address-model=64 architecture=x86 ^
|
|
102
|
-
--with-chrono --with-filesystem --with-system --with-thread --with-timer ^
|
|
103
|
-
--with-serialization --with-program_options ^
|
|
104
|
-
variant=debug,release link=static runtime-link=static,shared
|
|
105
|
-
|
|
106
|
-
@REM Visula studio 2013 32bitの場合
|
|
107
|
-
bjam.exe toolset=msvc-12.0 threading=multi architecture=x86 ^
|
|
108
|
-
--with-chrono --with-filesystem --with-system --with-thread --with-timer ^
|
|
109
|
-
--with-serialization --with-program_options ^
|
|
110
|
-
variant=debug,release link=static runtime-link=static,shared
|
|
111
|
-
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
4. サーバープラグインとクライアントの両方をビルド
|
|
115
|
-
------------------------------------------------------------
|
|
116
|
-
クライアントのみをビルドしたい場合はこのステップを飛ばしてください。
|
|
117
|
-
|
|
118
|
-
### 4-1 MySQLソースコードのダウンロード
|
|
119
|
-
[MySQL Community Serverのダウンロードページ](http://dev.mysql.com/downloads/mysql)
|
|
120
|
-
からソースコードをダウンロードします。
|
|
121
|
-
「Select Platform」のプルダウンから「Source Code」を選択し、Windows ZIP形式の
|
|
122
|
-
ファイルをダウンロードします。
|
|
123
|
-
|
|
124
|
-
ダウンロードした圧縮ファイルを解凍します。ここでは、以下のフォルダに保存したも
|
|
125
|
-
のとします。
|
|
126
|
-
```
|
|
127
|
-
C:\Users\Public\Documents\mysql-5.6.25
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
### 4-2 Transactd Pluginソースコードのダウンロード
|
|
132
|
-
[Transactd Pluginのダウンロードページ](http://www.bizstation.jp/al/transactd/download/index.asp)
|
|
133
|
-
からソースコードをダウンロードします。
|
|
134
|
-
ソースを展開するフォルダ transactd をMySQLのソースツリー内のpluginフォルダに作成
|
|
135
|
-
します。
|
|
136
|
-
```
|
|
137
|
-
md C:\Users\Public\Documents\mysql-5.6.25\plugin\transactd
|
|
138
|
-
```
|
|
139
|
-
ダウンロードしたソースコードを、上記で作成したtransactdフォルダに展開します。
|
|
140
|
-
ここでは、以下のようなフォルダ構造になります。
|
|
141
|
-
```
|
|
142
|
-
C:\Users\Public\Documents\mysql-5.6.25\plugin\transactd
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
### 4-3 MySQLソースコードの修正
|
|
147
|
-
|
|
148
|
-
#### 4-3.1 パッチの適用
|
|
149
|
-
Transactd Pluginソースコードのpatchディレクトリにmysqlのソースコードを修正する
|
|
150
|
-
ためのパッチが含まれています。そのパッチをmysqlのソースディレクトリにコピー
|
|
151
|
-
します。(パッチはmysql/mariadbのバージョンごとに異なる名前になっています。
|
|
152
|
-
パッチ名のバージョンの部分は合ったものに変更してください。)
|
|
153
|
-
```
|
|
154
|
-
cd C:\Users\Public\Documents\mysql-5.6.25
|
|
155
|
-
copy plugin\transactd\patch\transactd-win-mysql-5.6.25.patch *
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
patchコマンドを使用できる環境(Cygwin、Git Bashなど)があるならば、以下の
|
|
159
|
-
コマンドでパッチを適用します。
|
|
160
|
-
```
|
|
161
|
-
cd C:\Users\Public\Documents\mysql-5.6.25
|
|
162
|
-
patch -p0 -i transactd-win-mysql-5.6.25.patch
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
patchコマンドがない場合、[宮坂 賢 氏のGNU patch 2.5.4 (Win32 版)](
|
|
166
|
-
http://cetus.sakura.ne.jp/softlab/toolbox1/index.html#difpat)をダウンロードし
|
|
167
|
-
使用します。
|
|
168
|
-
ここでは、以下のフォルダに保存したものとします。
|
|
169
|
-
```
|
|
170
|
-
C:\Program Files (x86)\patc254w
|
|
171
|
-
```
|
|
172
|
-
以下のコマンドでパッチを適用します。
|
|
173
|
-
```
|
|
174
|
-
cd C:\Users\Public\Documents\mysql-5.6.25
|
|
175
|
-
"C:\Program Files (x86)\patc254w\patch.exe" -p0 --binary -i transactd-win-mysql-5.6.25.patch
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
#### 4-3.2 ソースコードのエンコーディングの修正
|
|
179
|
-
日本語Windows環境でビルドする場合、一部のソースコードのエンコーディングを変更する
|
|
180
|
-
必要があります。以下のファイルをVisual Studioから開き、[名前を付けて保存]-
|
|
181
|
-
[上書き保存]の右の▼をクリック-[エンコード付きで保存]を選択し、
|
|
182
|
-
「Unicode (UTF-8 シグネチャ付き)-コードページ 65001」で上書き保存します。
|
|
183
|
-
|
|
184
|
-
* sql\sql_locale.cc
|
|
185
|
-
* storage\perfschema\unittest\pfs_connect_attr-t.cc
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
### 4-4 CMakeの実行
|
|
189
|
-
Visual Studioコマンドプロンプトを起動して、以下のコマンドを実行します。
|
|
190
|
-
```
|
|
191
|
-
@REM Visual studio 2010 64Bitの場合
|
|
192
|
-
cd C:\Users\Public\Documents\mysql-5.6.25
|
|
193
|
-
md x64
|
|
194
|
-
cd x64
|
|
195
|
-
cmake .. -G "Visual Studio 10 Win64" ^
|
|
196
|
-
-DBOOST_ROOT="C:\boost\boost_1_58_0"
|
|
197
|
-
|
|
198
|
-
@REM Visual studio 2013 64Bitの場合
|
|
199
|
-
cd C:\Users\Public\Documents\mysql-5.7.8
|
|
200
|
-
md x64
|
|
201
|
-
cd x64
|
|
202
|
-
cmake .. -G "Visual Studio 12 Win64" ^
|
|
203
|
-
-DWITH_BOOST="C:\boost\boost_1_58_0" ^
|
|
204
|
-
-DBOOST_ROOT="C:\boost\boost_1_58_0"
|
|
205
|
-
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
### 4-5 ビルド
|
|
210
|
-
CMakeが完了すると、以下のソリューションファイルが生成されています。
|
|
211
|
-
```
|
|
212
|
-
C:\Users\Public\Documents\mysql-5.6.25\x64\MySQL.sln
|
|
213
|
-
```
|
|
214
|
-
MySQL.slnをVisual Studioで開きます。メニューの[ビルド]-[構成マネージャー]から構
|
|
215
|
-
成を「Release」に変更し、[ビルド]-[ソリューションのビルド]をクリックします。
|
|
216
|
-
|
|
217
|
-
バイナリは以下のフォルダに出力されます。
|
|
218
|
-
```
|
|
219
|
-
C:\Users\Public\Documents\mysql-5.6.25\x64\sql\lib\plugin
|
|
220
|
-
C:\Users\Public\Documents\mysql-5.6.25\x64\plugin\transactd\bin
|
|
221
|
-
C:\Users\Public\Documents\mysql-5.6.25\x64\plugin\transactd\lib
|
|
222
|
-
```
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
5. クライアントのみをビルド
|
|
227
|
-
------------------------------------------------------------
|
|
228
|
-
### 5-1 Transactd Pluginソースコードのダウンロード
|
|
229
|
-
[Transactd Pluginのダウンロードページ](http://www.bizstation.jp/al/transactd/download/index.asp)
|
|
230
|
-
からソースコードをダウンロードします。
|
|
231
|
-
|
|
232
|
-
ここでは、以下のフォルダに展開したとします。
|
|
233
|
-
```
|
|
234
|
-
C:\Users\Public\Documents\transactd
|
|
235
|
-
```
|
|
236
|
-
(EmbarcaderoのC++BuilderXEシリーズの場合は[5-4 C++BuilderXEシリーズでのビルド]に進んでください。)
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
### 5-2 CMakeの実行
|
|
240
|
-
Visual Studioコマンドプロンプトを起動して、以下のコマンドを実行します。
|
|
241
|
-
```
|
|
242
|
-
@REM Visual studio 2010 64Bitの場合
|
|
243
|
-
cd C:\Users\Public\Documents\transactd
|
|
244
|
-
md x64
|
|
245
|
-
cd x64
|
|
246
|
-
cmake .. -G "Visual Studio 10 Win64" ^
|
|
247
|
-
-DBOOST_ROOT="C:\boost\boost_1_58_0" ^
|
|
248
|
-
-DWITH_TRANSACTD_SERVER=OFF -DWITH_TRANSACTD_CLIENTS=ON
|
|
249
|
-
|
|
250
|
-
@REM Visual studio 2013 64Bitの場合
|
|
251
|
-
cd C:\Users\Public\Documents\transactd
|
|
252
|
-
md x64
|
|
253
|
-
cd x64
|
|
254
|
-
cmake .. -G "Visual Studio 12 Win64" ^
|
|
255
|
-
-DBOOST_ROOT="C:\boost\boost_1_58_0" ^
|
|
256
|
-
-DWITH_TRANSACTD_SERVER=OFF -DWITH_TRANSACTD_CLIENTS=ON
|
|
257
|
-
|
|
258
|
-
```
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
### 5-3 ビルド
|
|
262
|
-
CMakeが完了すると、以下のソリューションファイル (TransactdClinet.sln)が生成されています。
|
|
263
|
-
(Version 2.4.0以前は tdcl.sln)
|
|
264
|
-
```
|
|
265
|
-
C:\Users\Public\Documents\transactd\x64\TransactdClinet.sln
|
|
266
|
-
```
|
|
267
|
-
TransactdClinet.slnをVisual Studioで開きます。メニューの[ビルド]-[構成マネージャー]から構
|
|
268
|
-
成を「Release」に変更し、[ビルド]-[ソリューションのビルド]をクリックしま
|
|
269
|
-
す。
|
|
270
|
-
|
|
271
|
-
バイナリは以下のフォルダに出力されます。
|
|
272
|
-
```
|
|
273
|
-
C:\Users\Public\Documents\transactd\x64\bin
|
|
274
|
-
C:\Users\Public\Documents\transactd\x64\lib
|
|
275
|
-
```
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
### 5-4 C++BuilderXEシリーズでのビルド
|
|
279
|
-
EmbarcaderoのC++BuilderXEシリーズの場合は
|
|
280
|
-
```
|
|
281
|
-
C:\Users\Public\Documents\Build\TransactdClient_bcb.groupproj
|
|
282
|
-
```
|
|
283
|
-
にてXE以降のコンパイラーでコンパイルできます。
|
|
284
|
-
|
|
285
|
-
コンパイルにはコンパイラー付属のboostライブラリがインストールされている必要が
|
|
286
|
-
あります。また、C++ Builderの[ツール]-[オプション]-[環境オプション]-[C++ オプション]
|
|
287
|
-
-[パスとディレクトリ]の[システムインクルードパス]に
|
|
288
|
-
```
|
|
289
|
-
32Bitの場合 $(CG_BOOST_ROOT)
|
|
290
|
-
64Bitの場合 $(CG_64_BOOST_ROOT)
|
|
291
|
-
```
|
|
292
|
-
を追加します。
|
|
293
|
-
ビルド構成は、Unicode版/Ansi版 Release/Debug 32Bit/64Bit があります。
|
|
294
|
-
出力は、bin libフォルダに生成されます。64Bitの場合は常に動的RTLとリンクが必要です。
|
|
295
|
-
|
|
296
|
-
以下はバージョンごとの補足事項です。
|
|
297
|
-
|
|
298
|
-
32Bit(すべてのXEバージョン)の場合、boost_program_optionsがコンパイルされていないため、
|
|
299
|
-
```
|
|
300
|
-
build\libboost_program_options-bcb1_39\libboost_program_options-bcb-mt-1_39.cbproj
|
|
301
|
-
```
|
|
302
|
-
にて事前にlibboost_program_options-bcb-mt-1_39.libを生成してください。
|
|
303
|
-
コンパイルの前に、下記のboostのソースの修正が必要です。
|
|
304
|
-
```
|
|
305
|
-
ファイル:$(CG_BOOST_ROOT)\boost_1_39\libs\program_options\src\variables_map.cpp
|
|
306
|
-
71行目 :v = variable_value(); --> variable_value vr;v = vr;
|
|
307
|
-
115行目 :m[key] = variable_value(def, true); --> variable_value vr(def, true);m[key] = vr;
|
|
308
|
-
```
|
|
309
|
-
|
|
310
|
-
XE2の場合、boost_serializationがコンパイルされていないため、
|
|
311
|
-
```
|
|
312
|
-
build\libboost_serialization-bcb-1_39\libboost_boost_serialization-bcb-mt-1_39.cbproj
|
|
313
|
-
```
|
|
314
|
-
にて事前にlibboost_serialization-bcb-mt-1_39.libを生成してください。
|
|
315
|
-
|
|
316
|
-
XE4 64Bitの場合、コンパイラバージョンがXE3と同じであるため、tdclcppを使用する
|
|
317
|
-
アプリケーションの自動リンクでtdclcpp_bc170_64x.libを探そうとします。しかしXE4で
|
|
318
|
-
生成されるdllはtdclcpp_bc180_64x.dllのため、libが見つからずリンクエラーが発生します。
|
|
319
|
-
XE4 64Bitでtdclcppとtdclstmtをコンパイルした際には、libのファイル名の180部分を170に
|
|
320
|
-
リネームし`tdclcpp_bc180_64x_xx.lib`と`tdclstmt_bc180_64x_xx.lib`にしてください。
|
|
321
|
-
|
|
322
|
-
XE6 64Bitの場合、boost_threadのコンパイルが通らないためboostのソースを修正します。
|
|
323
|
-
```
|
|
324
|
-
ファイル:$(CG_BOOST_ROOT)\boost_1_50\boost\asio\detail\impl\win_thread.ipp
|
|
325
|
-
52行目: ::QueueUserAPC(apc_function, thread_, 0); --> ::QueueUserAPC((PAPCFUNC)apc_function, thread_, 0);
|
|
326
|
-
```
|