transactd 2.1.0 → 2.2.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.
Files changed (84) hide show
  1. checksums.yaml +4 -4
  2. data/bin/common/tdclc_32_2_2.dll +0 -0
  3. data/bin/common/tdclc_64_2_2.dll +0 -0
  4. data/build/swig/ruby/generate.cmd +45 -0
  5. data/build/swig/ruby/generate.sh +40 -0
  6. data/build/swig/ruby/tdclrb_wrap.cpp +406 -969
  7. data/build/swig/tdcl.i +88 -0
  8. data/build/tdclc/CMakeLists.txt +5 -1
  9. data/build/tdclc/tdclc.cbproj +1 -1
  10. data/build/tdclc/tdclc.rc +4 -4
  11. data/build/tdclcpp/tdclcpp.rc +4 -4
  12. data/build/tdclcpp/tdclcpp_bc.cbproj +1 -1
  13. data/build/tdclrb/tdclrb.rc +4 -4
  14. data/source/bzs/db/engine/mysql/database.cpp +165 -74
  15. data/source/bzs/db/engine/mysql/database.h +19 -5
  16. data/source/bzs/db/engine/mysql/dbManager.cpp +33 -11
  17. data/source/bzs/db/engine/mysql/dbManager.h +6 -1
  18. data/source/bzs/db/engine/mysql/mydebuglog.h +12 -0
  19. data/source/bzs/db/engine/mysql/mysqlInternal.h +10 -3
  20. data/source/bzs/db/engine/mysql/mysqlThd.cpp +20 -8
  21. data/source/bzs/db/protocol/hs/hsCommandExecuter.cpp +12 -7
  22. data/source/bzs/db/protocol/hs/hsCommandExecuter.h +1 -1
  23. data/source/bzs/db/protocol/tdap/client/activeTableImple.h +1 -0
  24. data/source/bzs/db/protocol/tdap/client/client.cpp +17 -15
  25. data/source/bzs/db/protocol/tdap/client/client.h +102 -30
  26. data/source/bzs/db/protocol/tdap/client/connectionPool.cpp +1 -1
  27. data/source/bzs/db/protocol/tdap/client/database.cpp +32 -10
  28. data/source/bzs/db/protocol/tdap/client/database.h +1 -0
  29. data/source/bzs/db/protocol/tdap/client/databaseFactory.cpp +0 -2
  30. data/source/bzs/db/protocol/tdap/client/dbDef.cpp +2 -0
  31. data/source/bzs/db/protocol/tdap/client/dllmain.cpp +47 -42
  32. data/source/bzs/db/protocol/tdap/client/fields.h +3 -1
  33. data/source/bzs/db/protocol/tdap/client/filter.h +3 -3
  34. data/source/bzs/db/protocol/tdap/client/nsDatabase.cpp +18 -2
  35. data/source/bzs/db/protocol/tdap/client/nsDatabase.h +3 -2
  36. data/source/bzs/db/protocol/tdap/client/nsTable.cpp +14 -6
  37. data/source/bzs/db/protocol/tdap/client/nsTable.h +12 -12
  38. data/source/bzs/db/protocol/tdap/client/recordsetImple.h +6 -3
  39. data/source/bzs/db/protocol/tdap/client/request.h +1 -0
  40. data/source/bzs/db/protocol/tdap/client/sqlBuilder.cpp +101 -64
  41. data/source/bzs/db/protocol/tdap/client/sqlBuilder.h +3 -0
  42. data/source/bzs/db/protocol/tdap/client/stringConverter.h +9 -13
  43. data/source/bzs/db/protocol/tdap/client/table.cpp +73 -56
  44. data/source/bzs/db/protocol/tdap/client/table.h +8 -8
  45. data/source/bzs/db/protocol/tdap/client/trdboostapi.h +52 -100
  46. data/source/bzs/db/protocol/tdap/mysql/databaseSchema.cpp +8 -1
  47. data/source/bzs/db/protocol/tdap/mysql/request.h +6 -0
  48. data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.cpp +349 -189
  49. data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.h +28 -12
  50. data/source/bzs/db/protocol/tdap/tdapRequest.h +5 -4
  51. data/source/bzs/db/protocol/tdap/tdapSchema.h +6 -1
  52. data/source/bzs/db/protocol/tdap/tdapcapi.h +29 -4
  53. data/source/bzs/db/protocol/tdap/uri.h +297 -0
  54. data/source/bzs/db/transactd/appModule.cpp +41 -16
  55. data/source/bzs/db/transactd/appModule.h +1 -2
  56. data/source/bzs/db/transactd/transactd.cpp +37 -14
  57. data/source/bzs/env/crosscompile.h +1 -3
  58. data/source/bzs/example/queryData.cpp +2 -2
  59. data/source/bzs/netsvc/client/iconnection.h +3 -1
  60. data/source/bzs/netsvc/client/tcpClient.cpp +75 -28
  61. data/source/bzs/netsvc/client/tcpClient.h +94 -62
  62. data/source/bzs/netsvc/server/IAppModule.h +2 -2
  63. data/source/bzs/netsvc/server/serverCpt.cpp +17 -10
  64. data/source/bzs/netsvc/server/serverPipe.cpp +26 -19
  65. data/source/bzs/netsvc/server/serverTpool.cpp +8 -2
  66. data/source/bzs/rtl/debuglog.cpp +21 -5
  67. data/source/bzs/rtl/debuglog.h +1 -1
  68. data/source/bzs/test/tdclphp/transactd_Test.php +183 -37
  69. data/source/bzs/test/tdclphp/transactd_pool_Test.php +1 -2
  70. data/source/bzs/test/tdclrb/transactd_spec.rb +183 -39
  71. data/source/bzs/test/transactdBench/scaling_bench.cpp +3 -3
  72. data/source/bzs/test/trdclengn/test_trdclengn.cpp +172 -57
  73. data/source/global/boost/sha1.hpp +223 -0
  74. data/source/global/tdclatl/ConnectParams.cpp +2 -2
  75. data/source/global/tdclatl/ConnectParams.h +1 -1
  76. data/source/global/tdclatl/Database.cpp +18 -0
  77. data/source/global/tdclatl/Database.h +5 -0
  78. data/source/global/tdclatl/tdclatl.idl +23 -1
  79. data/source/linux/linuxTypes.h +2 -0
  80. metadata +8 -6
  81. data/bin/common/tdclc_32_2_1.dll +0 -0
  82. data/bin/common/tdclc_64_2_1.dll +0 -0
  83. data/source/bzs/db/protocol/tdap/client/memRecordset.cpp +0 -448
  84. data/source/bzs/db/protocol/tdap/client/memRecordset.h +0 -159
@@ -0,0 +1,223 @@
1
+ // boost/uuid/sha1.hpp header file ----------------------------------------------//
2
+
3
+ // Copyright 2007 Andy Tompkins.
4
+ // Distributed under the Boost Software License, Version 1.0. (See
5
+ // accompanying file LICENSE_1_0.txt or copy at
6
+ // http://www.boost.org/LICENSE_1_0.txt)
7
+
8
+ // Revision History
9
+ // 29 May 2007 - Initial Revision
10
+ // 25 Feb 2008 - moved to namespace boost::uuids::detail
11
+ // 10 Jan 2012 - can now handle the full size of messages (2^64 - 1 bits)
12
+
13
+ // This is a byte oriented implementation
14
+
15
+ #ifndef BOOST_UUID_SHA1_H
16
+ #define BOOST_UUID_SHA1_H
17
+
18
+ #include <boost/static_assert.hpp>
19
+ #include <stdexcept>
20
+ #include <boost/throw_exception.hpp>
21
+ #include <cstddef>
22
+
23
+ #ifdef BOOST_NO_STDC_NAMESPACE
24
+ namespace std {
25
+ using ::size_t;
26
+ } // namespace std
27
+ #endif
28
+
29
+ namespace boost {
30
+ namespace uuids {
31
+ namespace detail {
32
+
33
+ BOOST_STATIC_ASSERT(sizeof(unsigned char)*8 == 8);
34
+ BOOST_STATIC_ASSERT(sizeof(unsigned int)*8 == 32);
35
+
36
+ inline unsigned int left_rotate(unsigned int x, std::size_t n)
37
+ {
38
+ return (x<<n) ^ (x>> (32-n));
39
+ }
40
+
41
+ class sha1
42
+ {
43
+ public:
44
+ typedef unsigned int(&digest_type)[5];
45
+ public:
46
+ sha1();
47
+
48
+ void reset();
49
+
50
+ void process_byte(unsigned char byte);
51
+ void process_block(void const* bytes_begin, void const* bytes_end);
52
+ void process_bytes(void const* buffer, std::size_t byte_count);
53
+
54
+ void get_digest(digest_type digest);
55
+
56
+ private:
57
+ void process_block();
58
+ void process_byte_impl(unsigned char byte);
59
+
60
+ private:
61
+ unsigned int h_[5];
62
+
63
+ unsigned char block_[64];
64
+
65
+ std::size_t block_byte_index_;
66
+ std::size_t bit_count_low;
67
+ std::size_t bit_count_high;
68
+ };
69
+
70
+ inline sha1::sha1()
71
+ {
72
+ reset();
73
+ }
74
+
75
+ inline void sha1::reset()
76
+ {
77
+ h_[0] = 0x67452301;
78
+ h_[1] = 0xEFCDAB89;
79
+ h_[2] = 0x98BADCFE;
80
+ h_[3] = 0x10325476;
81
+ h_[4] = 0xC3D2E1F0;
82
+
83
+ block_byte_index_ = 0;
84
+ bit_count_low = 0;
85
+ bit_count_high = 0;
86
+ }
87
+
88
+ inline void sha1::process_byte(unsigned char byte)
89
+ {
90
+ process_byte_impl(byte);
91
+
92
+ bit_count_low += 8;
93
+ if (bit_count_low == 0) {
94
+ ++bit_count_high;
95
+ if (bit_count_high == 0) {
96
+ BOOST_THROW_EXCEPTION(std::runtime_error("sha1 too many bytes"));
97
+ }
98
+ }
99
+ }
100
+
101
+ inline void sha1::process_byte_impl(unsigned char byte)
102
+ {
103
+ block_[block_byte_index_++] = byte;
104
+
105
+ if (block_byte_index_ == 64) {
106
+ block_byte_index_ = 0;
107
+ process_block();
108
+ }
109
+ }
110
+
111
+ inline void sha1::process_block(void const* bytes_begin, void const* bytes_end)
112
+ {
113
+ unsigned char const* begin = static_cast<unsigned char const*>(bytes_begin);
114
+ unsigned char const* end = static_cast<unsigned char const*>(bytes_end);
115
+ for(; begin != end; ++begin) {
116
+ process_byte(*begin);
117
+ }
118
+ }
119
+
120
+ inline void sha1::process_bytes(void const* buffer, std::size_t byte_count)
121
+ {
122
+ unsigned char const* b = static_cast<unsigned char const*>(buffer);
123
+ process_block(b, b+byte_count);
124
+ }
125
+
126
+ inline void sha1::process_block()
127
+ {
128
+ unsigned int w[80];
129
+ for (std::size_t i=0; i<16; ++i) {
130
+ w[i] = (block_[i*4 + 0] << 24);
131
+ w[i] |= (block_[i*4 + 1] << 16);
132
+ w[i] |= (block_[i*4 + 2] << 8);
133
+ w[i] |= (block_[i*4 + 3]);
134
+ }
135
+ for (std::size_t i=16; i<80; ++i) {
136
+ w[i] = left_rotate((w[i-3] ^ w[i-8] ^ w[i-14] ^ w[i-16]), 1);
137
+ }
138
+
139
+ unsigned int a = h_[0];
140
+ unsigned int b = h_[1];
141
+ unsigned int c = h_[2];
142
+ unsigned int d = h_[3];
143
+ unsigned int e = h_[4];
144
+
145
+ for (std::size_t i=0; i<80; ++i) {
146
+ unsigned int f;
147
+ unsigned int k;
148
+
149
+ if (i<20) {
150
+ f = (b & c) | (~b & d);
151
+ k = 0x5A827999;
152
+ } else if (i<40) {
153
+ f = b ^ c ^ d;
154
+ k = 0x6ED9EBA1;
155
+ } else if (i<60) {
156
+ f = (b & c) | (b & d) | (c & d);
157
+ k = 0x8F1BBCDC;
158
+ } else {
159
+ f = b ^ c ^ d;
160
+ k = 0xCA62C1D6;
161
+ }
162
+
163
+ unsigned temp = left_rotate(a, 5) + f + e + k + w[i];
164
+ e = d;
165
+ d = c;
166
+ c = left_rotate(b, 30);
167
+ b = a;
168
+ a = temp;
169
+ }
170
+
171
+ h_[0] += a;
172
+ h_[1] += b;
173
+ h_[2] += c;
174
+ h_[3] += d;
175
+ h_[4] += e;
176
+ }
177
+
178
+ inline void sha1::get_digest(digest_type digest)
179
+ {
180
+ // append the bit '1' to the message
181
+ process_byte_impl(0x80);
182
+
183
+ // append k bits '0', where k is the minimum number >= 0
184
+ // such that the resulting message length is congruent to 56 (mod 64)
185
+ // check if there is enough space for padding and bit_count
186
+ if (block_byte_index_ > 56) {
187
+ // finish this block
188
+ while (block_byte_index_ != 0) {
189
+ process_byte_impl(0);
190
+ }
191
+
192
+ // one more block
193
+ while (block_byte_index_ < 56) {
194
+ process_byte_impl(0);
195
+ }
196
+ } else {
197
+ while (block_byte_index_ < 56) {
198
+ process_byte_impl(0);
199
+ }
200
+ }
201
+
202
+ // append length of message (before pre-processing)
203
+ // as a 64-bit big-endian integer
204
+ process_byte_impl( static_cast<unsigned char>((bit_count_high>>24) & 0xFF) );
205
+ process_byte_impl( static_cast<unsigned char>((bit_count_high>>16) & 0xFF) );
206
+ process_byte_impl( static_cast<unsigned char>((bit_count_high>>8 ) & 0xFF) );
207
+ process_byte_impl( static_cast<unsigned char>((bit_count_high) & 0xFF) );
208
+ process_byte_impl( static_cast<unsigned char>((bit_count_low>>24) & 0xFF) );
209
+ process_byte_impl( static_cast<unsigned char>((bit_count_low>>16) & 0xFF) );
210
+ process_byte_impl( static_cast<unsigned char>((bit_count_low>>8 ) & 0xFF) );
211
+ process_byte_impl( static_cast<unsigned char>((bit_count_low) & 0xFF) );
212
+
213
+ // get final digest
214
+ digest[0] = h_[0];
215
+ digest[1] = h_[1];
216
+ digest[2] = h_[2];
217
+ digest[3] = h_[3];
218
+ digest[4] = h_[4];
219
+ }
220
+
221
+ }}} // namespace boost::uuids::detail
222
+
223
+ #endif
@@ -22,11 +22,11 @@
22
22
  using namespace bzs::db::protocol::tdap::client;
23
23
 
24
24
  STDMETHODIMP CConnectParams::Init(BSTR protocol, BSTR hostOrIp, BSTR dbname,
25
- BSTR schemaTable)
25
+ BSTR schemaTable, BSTR username, BSTR passwd)
26
26
  {
27
27
  if (m_param)
28
28
  delete m_param;
29
- m_param = new connectParams(protocol, hostOrIp, dbname, schemaTable);
29
+ m_param = new connectParams(protocol, hostOrIp, dbname, schemaTable, username, passwd);
30
30
  return S_OK;
31
31
  }
32
32
  STDMETHODIMP CConnectParams::put_Uri(BSTR val)
@@ -58,7 +58,7 @@ public:
58
58
 
59
59
  public:
60
60
  STDMETHOD(Init)(BSTR protocol, BSTR hostOrIp, BSTR dbname,
61
- BSTR schemaTable);
61
+ BSTR schemaTable, BSTR username, BSTR passwd);
62
62
  STDMETHOD(put_Uri)(BSTR val);
63
63
  STDMETHOD(get_Uri)(BSTR* retVal);
64
64
  STDMETHOD(put_Mode)(short val);
@@ -455,6 +455,12 @@ STDMETHODIMP CDatabase::get_RefCount(int* Value)
455
455
  return S_OK;
456
456
  }
457
457
 
458
+ STDMETHODIMP CDatabase::AclReload(short* Value)
459
+ {
460
+ *Value = m_db->aclReload();
461
+ return S_OK;
462
+ }
463
+
458
464
  STDMETHODIMP CDatabase::get_TrnsactionFlushWaitStatus(VARIANT_BOOL* Value)
459
465
  {
460
466
  *Value = database::trnsactionFlushWaitStatus();
@@ -479,6 +485,18 @@ STDMETHODIMP CDatabase::get_MaxTables(int* Value)
479
485
  return S_OK;
480
486
  }
481
487
 
488
+ STDMETHODIMP CDatabase::get_TrxIsolationServer(eSrvIsorationType* Value)
489
+ {
490
+ *Value = (eSrvIsorationType)m_db->trxIsolationServer();
491
+ return S_OK;
492
+ }
493
+
494
+ STDMETHODIMP CDatabase::get_TrxLockWaitTimeoutServer(int* Value)
495
+ {
496
+ *Value = m_db->trxLockWaitTimeoutServer();
497
+ return S_OK;
498
+ }
499
+
482
500
  void __stdcall onCopyData(database* db, int recordCount, int count,
483
501
  bool& cancel)
484
502
  {
@@ -141,10 +141,15 @@ public:
141
141
  STDMETHOD(SwapTablename)(BSTR Uri1, BSTR Uri2);
142
142
  STDMETHOD(get_ClientID)(short* Value);
143
143
  STDMETHOD(get_RefCount)(int* Value);
144
+ STDMETHOD(AclReload)(short* Value);
144
145
  STDMETHOD(get_TrnsactionFlushWaitStatus)(VARIANT_BOOL* Value);
145
146
  STDMETHOD(put_ExecCodePage)(unsigned int Value);
146
147
  STDMETHOD(get_ExecCodePage)(unsigned int* Value);
147
148
  STDMETHOD(get_MaxTables)(int* Value);
149
+ STDMETHOD(get_TrxIsolationServer)(eSrvIsorationType* Value);
150
+ STDMETHOD(get_TrxLockWaitTimeoutServer)(int* Value);
151
+
152
+
148
153
  };
149
154
 
150
155
  OBJECT_ENTRY_AUTO(__uuidof(Database), CDatabase)
@@ -180,6 +180,7 @@ enum eStatus
180
180
  STATUS_INVALID_DATASIZE = 22,
181
181
  STATUS_INVALID_FIELDNAME = 65,
182
182
  ERROR_TD_INVALID_CLINETHOST = 171,
183
+ ERROR_NO_DATABASE = 172,
183
184
  ERROR_NOSPECIFY_TABLE = 176,
184
185
  ERROR_LOAD_CLIBRARY = 200,
185
186
  ERROR_INDEX_RND_INIT = 201,
@@ -292,6 +293,19 @@ enum eLockType
292
293
 
293
294
  }eLockType;
294
295
 
296
+ typedef
297
+ [
298
+ helpstring("Server isoration type")
299
+ ]
300
+ enum eSrvIsorationType
301
+ {
302
+ SRV_ISO_READ_UNCOMMITED = 0,
303
+ SRV_ISO_READ_COMMITED = 1,
304
+ SRV_ISO_REPEATABLE_READ = 2,
305
+ SRV_ISO_SERIALIZABLE = 3,
306
+
307
+ }eSrvIsorationType;
308
+
295
309
  typedef
296
310
  [
297
311
  helpstring("Snapshot lock type Constants")
@@ -473,6 +487,12 @@ interface IDatabase : IDispatch
473
487
  HRESULT _stdcall ExecCodePage([out, retval] unsigned int* Value);
474
488
  [propget, id(0x000000F3)]
475
489
  HRESULT _stdcall MaxTables([out, retval] int* Value);
490
+ [id(0x000000F4)]
491
+ HRESULT _stdcall AclReload([out, retval] short* Value);
492
+ [propget, id(0x000000F5)]
493
+ HRESULT _stdcall TrxIsolationServer([out, retval] eSrvIsorationType* Value);
494
+ [propget, id(0x000000F6)]
495
+ HRESULT _stdcall TrxLockWaitTimeoutServer([out, retval] int* Value);
476
496
 
477
497
 
478
498
  };
@@ -1452,7 +1472,9 @@ interface IConnectParams : IDispatch
1452
1472
  {
1453
1473
  [id(1)]
1454
1474
  HRESULT _stdcall Init([in] BSTR protocol, [in] BSTR hostOrIp, [in] BSTR dbname,
1455
- [in] BSTR schemaTable);
1475
+ [in] BSTR schemaTable,
1476
+ [in, defaultvalue("")] BSTR username,
1477
+ [in, defaultvalue("")] BSTR passwd);
1456
1478
  [propput, id(2)]
1457
1479
  HRESULT _stdcall Uri([in] BSTR val);
1458
1480
  [propget, id(2)]
@@ -21,8 +21,10 @@
21
21
 
22
22
  #ifndef WCHAR
23
23
  #if (!(__APPLE__ && (__BORLANDC__ || __clang__)))
24
+ #if !defined(__GXX_EXPERIMENTAL_CXX0X__)
24
25
  typedef unsigned short char16_t;
25
26
  #endif
27
+ #endif
26
28
  typedef char16_t WCHAR;
27
29
 
28
30
  #endif
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: 2.1.0
4
+ version: 2.2.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: 2014-12-24 00:00:00.000000000 Z
11
+ date: 2015-01-22 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/tdclc_32_2_1.dll
23
- - bin/common/tdclc_64_2_1.dll
22
+ - bin/common/tdclc_32_2_2.dll
23
+ - bin/common/tdclc_64_2_2.dll
24
24
  - source/bzs/db/blobBuffer.h
25
25
  - source/bzs/db/blobStructs.h
26
26
  - source/bzs/db/engine/mysql/bookmark.h
@@ -81,8 +81,6 @@ files:
81
81
  - source/bzs/db/protocol/tdap/client/indexDDF.h
82
82
  - source/bzs/db/protocol/tdap/client/memRecord.cpp
83
83
  - source/bzs/db/protocol/tdap/client/memRecord.h
84
- - source/bzs/db/protocol/tdap/client/memRecordset.cpp
85
- - source/bzs/db/protocol/tdap/client/memRecordset.h
86
84
  - source/bzs/db/protocol/tdap/client/nsDatabase.cpp
87
85
  - source/bzs/db/protocol/tdap/client/nsDatabase.h
88
86
  - source/bzs/db/protocol/tdap/client/nsTable.cpp
@@ -122,6 +120,7 @@ files:
122
120
  - source/bzs/db/protocol/tdap/tdapRequest.h
123
121
  - source/bzs/db/protocol/tdap/tdapSchema.cpp
124
122
  - source/bzs/db/protocol/tdap/tdapSchema.h
123
+ - source/bzs/db/protocol/tdap/uri.h
125
124
  - source/bzs/db/transactd/appBuilderImple.h
126
125
  - source/bzs/db/transactd/appModule.cpp
127
126
  - source/bzs/db/transactd/appModule.h
@@ -210,6 +209,7 @@ files:
210
209
  - source/bzs/test/transactdBench/workerTransactdImple.h
211
210
  - source/bzs/test/trdclengn/test_blob.cpp
212
211
  - source/bzs/test/trdclengn/test_trdclengn.cpp
212
+ - source/global/boost/sha1.hpp
213
213
  - source/global/ormsrcgen/confParam.h
214
214
  - source/global/ormsrcgen/fieldName.cpp
215
215
  - source/global/ormsrcgen/fieldName.h
@@ -295,6 +295,8 @@ files:
295
295
  - build/swig/referencecounter.h
296
296
  - build/swig/tdcl.i
297
297
  - build/swig/validatablepointer.h
298
+ - build/swig/ruby/generate.cmd
299
+ - build/swig/ruby/generate.sh
298
300
  - build/swig/ruby/ruby.swg
299
301
  - build/swig/ruby/tdclrb_wrap.cpp
300
302
  - build/swig/ruby/threadBlockRegionWrapper.h
Binary file
Binary file