nwrfc 0.0.7 → 0.0.8

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 CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- Y2MwMWZmNDQ5YTk5ODZlMjBmM2I1M2M3MGZhNWU0MTRlODdhZjM3YQ==
4
+ OGYwZjQ5ZGFiZTg5NzY4OGZiMmUzZTE1ZTcwNWRjZDIyZjAwMjk4Nw==
5
5
  data.tar.gz: !binary |-
6
- ZDRhMjc3YWZmZDI3Nzk1YjhmMGIzNzc3ZDAxMDAyOGUwYjc0ODc3NQ==
6
+ Y2JjNjJjODMyNjA5ZmM4NjFmMzZkYTE2NzYxMWNhY2I0NjQxZjE4Yw==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- YTQ1MDJmMTlkZTgxNDk0ZjdhNmRmMTcwNGVhYTlhM2EyZmI2YmY4MzM4ZjIz
10
- YjY3MWU4ODIyNjY0OTdmZmM5YjIzMjcwNTNjOTRhM2NkNjM4NzdkMGQ1ZjQ5
11
- ZDlhMDZkYTIzMmQ5NjU2NDZjMDE1ZGJjY2UxMmFhN2JkOGMyNGU=
9
+ NTk4NTEyYTljOGU5OTg5YWY3YjQ4Yzk4YmFkMGI0ZWZhMjIyMTBiNTdhMjNl
10
+ MzcyZTFkZTdjZGJkM2I3OGIxNWU4OGIzN2UwMmRhODFmNDQ1YTVkNmQwMjU2
11
+ ZmQwYzI1NGU2YzhkNGRjOGNkM2RjNGI3YjA5NjJhMTdmMmYyYmM=
12
12
  data.tar.gz: !binary |-
13
- OTBjNzZiMWVkZjJlNmQ1ZTY0NDMxNGMxOTc2YTliZThjNTkzMjU3YmNkN2Nl
14
- NTljNTY5MTRhNmY4OTU5OWE2MjAwYzM3ZjZhNGY2ZjNhZGVhM2UzM2Q3OWNh
15
- YmIzNzMxNWU4OGRhM2MxYmYyYjk1NTVlNWZlM2E1YzE1NjgyNTM=
13
+ OWQ0YWI5OWNhNDZhZmQ0ZThjMDEwYTkzN2EwMDc5ZTMyZjNlMTRiZDQ0ZDA3
14
+ OTMwY2RjOWYzYWUzMGJhNWUzOGNhYWJiN2U1ODliZTlkNTUwZjIxNmViMjdi
15
+ MzRiZjg2MzM3OWViZGM5OTNkZDNkZWQ0NTEwODg2NDA0ZmQ5N2E=
@@ -84,6 +84,11 @@ so that ["system2"] at the end points to whatever label you gave it in the YAML
84
84
 
85
85
  == Release Notes
86
86
 
87
+ === Available in 0.0.8
88
+
89
+ * BigDecimal support added for BCD values (BCD is also returned as BigDecimal to cater for very big numbers like timestamps)
90
+ * Support for String::encode in Ruby 1.9 and above instead of iconv (thanks Meatballs1)
91
+
87
92
  === What's new in 0.0.7
88
93
 
89
94
  * Add support for JRuby by extending FFI::StructLayout::CharArrayProxy
@@ -1,3 +1,5 @@
1
+ require 'bigdecimal'
2
+
1
3
  module NWRFC
2
4
 
3
5
  # Representation of a data container (function, structure or table)
@@ -47,12 +49,7 @@ module NWRFC
47
49
  buf = FFI::MemoryPointer.new(:uchar, size*2)
48
50
  rc = NWRFCLib.get_chars(@handle, metadata[:name].cU, buf, size, @error.to_ptr)
49
51
  NWRFC.check_error(@error) if rc > 0
50
- return buf.get_bytes(0, size*2).uC.to_f
51
- #size = metadata[:ucLength]
52
- #cb = FFI::MemoryPointer.new :char, size * 2
53
- #rc = NWRFCLib.get_chars(@handle, metadata[:name].cU, cb, size * 2, @error.to_ptr)
54
- #NWRFC.check_error(@error) if rc > 0
55
- #cb.read_string(size).uC
52
+ return BigDecimal(buf.get_bytes(0, size*2).uC)
56
53
 
57
54
  when :RFCTYPE_TIME
58
55
  # TODO: See whether we can optimize this
@@ -167,9 +164,13 @@ module NWRFC
167
164
  NWRFCLib.set_date(@handle, member.cU, value.cU, @error.to_ptr)
168
165
 
169
166
  when :RFCTYPE_BCD
170
- stval = value.to_s.cU
171
- m = FFI::MemoryPointer.from_string stval
172
- NWRFCLib.set_string(@handle, member.cU, m, value.to_s.size, @error)
167
+ if value.class == BigDecimal
168
+ stval = value.to_s('F')
169
+ else
170
+ stval = value.to_s
171
+ end
172
+ m = FFI::MemoryPointer.from_string stval.cU
173
+ NWRFCLib.set_string(@handle, member.cU, m, stval.size, @error)
173
174
 
174
175
  when :RFCTYPE_TIME
175
176
  value = value_to_time(value)
@@ -31,8 +31,8 @@ module NWRFC
31
31
  @exception = exception
32
32
  end
33
33
 
34
- def inspect
35
- "Function exception #{exception}"
34
+ def to_s
35
+ "Function exception #{@exception}"
36
36
  end
37
37
 
38
38
  end
@@ -7,9 +7,12 @@
7
7
 
8
8
  require 'rubygems'
9
9
  require 'ffi'
10
- require 'iconv'
11
10
 
12
11
  RUBY_VERSION_18 = RUBY_VERSION[0..2] == "1.8"
12
+ # Check if ICONV compatibility (for Ruby 1.8 and below) is required
13
+ STRING_SUPPORTS_ENCODE = ''.respond_to?(:encode) # Ruby 1.9 and onwards
14
+
15
+ require 'iconv' unless STRING_SUPPORTS_ENCODE
13
16
 
14
17
  # Provide an alias for FFI::MemoryPointer#read_int to `read_uint` in 1.8
15
18
  # See http://stackoverflow.com/questions/9035661/ruby-ffi-memorypointer-read-int-present-in-1-9-but-not-1-8
@@ -17,7 +20,7 @@ RUBY_VERSION_18 = RUBY_VERSION[0..2] == "1.8"
17
20
  # that could result in sign conversion
18
21
  # FIXME - This must go! Replace with calls to get_* defined in FFI::MemoryPointer
19
22
  if RUBY_VERSION_18
20
- FFI::MemoryPointer.class_eval{ alias :read_uint :read_int}
23
+ FFI::MemoryPointer.class_eval { alias :read_uint :read_int }
21
24
  end
22
25
 
23
26
  # Enhancement to FFI::Pointer to be able to read a double-null terminated string,
@@ -35,12 +38,12 @@ module FFI
35
38
  cont_nullcount = 0
36
39
  offset = 0
37
40
  until cont_nullcount == 2
38
- byte = get_bytes(offset,1)
41
+ byte = get_bytes(offset, 1)
39
42
  cont_nullcount += 1 if byte == "\000"
40
43
  cont_nullcount = 0 if byte != "\000"
41
44
  offset += 1
42
45
  end
43
- get_bytes(0,offset+1)
46
+ get_bytes(0, offset+1)
44
47
  end
45
48
  end
46
49
  end
@@ -50,16 +53,38 @@ end
50
53
  # SDK function, which should work on Linux and Windows (and maybe other
51
54
  # architectures, though the plan is not to support them)
52
55
  #String.class_eval{define_method(:cU){ Iconv.conv("UTF-16LE", "UTF8", self+"\0") }}
53
- class String
54
56
 
55
- # Convert string from UTF-8 to doudble-null terminated UTF-16LE string
56
- def cU
57
- NWRFCLib::Cutf8_to_utf16le.iconv(self+"\0")
57
+ # Availability of String::convert() should indicate otherwise
58
+ if STRING_SUPPORTS_ENCODE
59
+
60
+ class String
61
+
62
+ # Convert string from UTF-8 to double-null terminated UTF-16LE string
63
+ def cU
64
+ (self.dup << "\0").force_encoding('UTF-8').encode('UTF-16LE')
65
+ end
66
+
67
+ # Convert string from UTF-16LE to UTF-8 and trim trailing whitespace
68
+ def uC
69
+ self.force_encoding('UTF-16LE').encode('UTF-8').strip
70
+ end
71
+
58
72
  end
59
73
 
60
- # Convert string from UTF-16LE to UTF-8 and trim trailing whitespace
61
- def uC
62
- NWRFCLib::Cutf16le_to_utf8.iconv(self).strip
74
+ else
75
+
76
+ class String
77
+
78
+ # Convert string from UTF-8 to doudble-null terminated UTF-16LE string
79
+ def cU
80
+ NWRFCLib::Cutf8_to_utf16le.iconv(self+"\0")
81
+ end
82
+
83
+ # Convert string from UTF-16LE to UTF-8 and trim trailing whitespace
84
+ def uC
85
+ NWRFCLib::Cutf16le_to_utf8.iconv(self).strip
86
+ end
87
+
63
88
  end
64
89
 
65
90
  end
@@ -69,7 +94,7 @@ end
69
94
  # and strips off blanks at the end to return a readable String
70
95
  class FFI::StructLayout::CharArray
71
96
  def get_str
72
- NWRFCLib::Cutf16le_to_utf8.iconv(self.to_ptr.read_string(self.size)).strip
97
+ self.to_ptr.read_string(self.size).uC
73
98
  end
74
99
  end
75
100
 
@@ -79,7 +104,7 @@ end
79
104
  if RUBY_PLATFORM == 'java'
80
105
  class FFI::StructLayout::CharArrayProxy
81
106
  def get_str
82
- NWRFCLib::Cutf16le_to_utf8.iconv(self.to_ptr.read_string(self.size)).strip
107
+ self.to_ptr.read_string(self.size).uC
83
108
  end
84
109
  end
85
110
  end
@@ -87,8 +112,10 @@ end
87
112
  # Library wrapper around NW RFC SDK shared library using RUBY-FFI
88
113
  module NWRFCLib
89
114
 
90
- Cutf8_to_utf16le = Iconv.new("UTF-16LE", "UTF-8")
91
- Cutf16le_to_utf8 = Iconv.new("UTF-8", "UTF-16LE")
115
+ unless STRING_SUPPORTS_ENCODE # Ruby 1.8 and below
116
+ Cutf8_to_utf16le = Iconv.new("UTF-16LE", "UTF-8")
117
+ Cutf16le_to_utf8 = Iconv.new("UTF-8", "UTF-16LE")
118
+ end
92
119
 
93
120
  extend FFI::Library
94
121
  ffi_lib 'sapnwrfc'
@@ -98,156 +125,156 @@ module NWRFCLib
98
125
  B_SIZE = 2
99
126
 
100
127
  RFC_RC = enum(
101
- :RFC_OK,
102
- :RFC_COMMUNICATION_FAILURE,
103
- :RFC_LOGON_FAILURE,
104
- :RFC_ABAP_RUNTIME_FAILURE,
105
- :RFC_ABAP_MESSAGE,
106
- :RFC_ABAP_EXCEPTION,
107
- :RFC_CLOSED,
108
- :RFC_CANCELED,
109
- :RFC_TIMEOUT,
110
- :RFC_MEMORY_INSUFFICIENT,
111
- :RFC_VERSION_MISMATCH,
112
- :RFC_INVALID_PROTOCOL,
113
- :RFC_SERIALIZATION_FAILURE,
114
- :RFC_INVALID_HANDLE,
115
- :RFC_RETRY,
116
- :RFC_EXTERNAL_FAILURE,
117
- :RFC_EXECUTED,
118
- :RFC_NOT_FOUND,
119
- :RFC_NOT_SUPPORTED,
120
- :RFC_ILLEGAL_STATE,
121
- :RFC_INVALID_PARAMETER,
122
- :RFC_CODEPAGE_CONVERSION_FAILURE,
123
- :RFC_CONVERSION_FAILURE,
124
- :RFC_BUFFER_TOO_SMALL,
125
- :RFC_TABLE_MOVE_BOF,
126
- :RFC_TABLE_MOVE_EOF,
127
- :RFC_UNKNOWN_ERROR
128
+ :RFC_OK,
129
+ :RFC_COMMUNICATION_FAILURE,
130
+ :RFC_LOGON_FAILURE,
131
+ :RFC_ABAP_RUNTIME_FAILURE,
132
+ :RFC_ABAP_MESSAGE,
133
+ :RFC_ABAP_EXCEPTION,
134
+ :RFC_CLOSED,
135
+ :RFC_CANCELED,
136
+ :RFC_TIMEOUT,
137
+ :RFC_MEMORY_INSUFFICIENT,
138
+ :RFC_VERSION_MISMATCH,
139
+ :RFC_INVALID_PROTOCOL,
140
+ :RFC_SERIALIZATION_FAILURE,
141
+ :RFC_INVALID_HANDLE,
142
+ :RFC_RETRY,
143
+ :RFC_EXTERNAL_FAILURE,
144
+ :RFC_EXECUTED,
145
+ :RFC_NOT_FOUND,
146
+ :RFC_NOT_SUPPORTED,
147
+ :RFC_ILLEGAL_STATE,
148
+ :RFC_INVALID_PARAMETER,
149
+ :RFC_CODEPAGE_CONVERSION_FAILURE,
150
+ :RFC_CONVERSION_FAILURE,
151
+ :RFC_BUFFER_TOO_SMALL,
152
+ :RFC_TABLE_MOVE_BOF,
153
+ :RFC_TABLE_MOVE_EOF,
154
+ :RFC_UNKNOWN_ERROR
128
155
  )
129
156
 
130
157
  RFC_ERROR_GROUP = enum(
131
- :OK,
132
- :ABAP_APPLICATION_FAILURE,
133
- :ABAP_RUNTIME_FAILURE,
134
- :LOGON_FAILURE,
135
- :COMMUNICATION_FAILURE,
136
- :EXTERNAL_RUNTIME_FAILURE,
137
- :EXTERNAL_APPLICATION_FAILURE
158
+ :OK,
159
+ :ABAP_APPLICATION_FAILURE,
160
+ :ABAP_RUNTIME_FAILURE,
161
+ :LOGON_FAILURE,
162
+ :COMMUNICATION_FAILURE,
163
+ :EXTERNAL_RUNTIME_FAILURE,
164
+ :EXTERNAL_APPLICATION_FAILURE
138
165
  )
139
166
 
140
167
  RFC_DIRECTION = enum(
141
- :RFC_IMPORT, 1,
142
- :RFC_EXPORT, 2,
143
- :RFC_CHANGING, 3,
144
- :RFC_TABLES, 7
168
+ :RFC_IMPORT, 1,
169
+ :RFC_EXPORT, 2,
170
+ :RFC_CHANGING, 3,
171
+ :RFC_TABLES, 7
145
172
  )
146
173
 
147
174
  RFC_TYPE = enum(
148
- :RFCTYPE_CHAR , 0,
149
- :RFCTYPE_DATE , 1,
150
- :RFCTYPE_BCD , 2,
151
- :RFCTYPE_TIME , 3,
152
- :RFCTYPE_BYTE , 4,
153
- :RFCTYPE_TABLE , 5,
154
- :RFCTYPE_NUM , 6,
155
- :RFCTYPE_FLOAT , 7,
156
- :RFCTYPE_INT , 8,
157
- :RFCTYPE_INT2 , 9,
158
- :RFCTYPE_INT1 , 10,
159
- :RFCTYPE_NULL , 14,
160
- :RFCTYPE_ABAPOBJECT, 16,
161
- :RFCTYPE_STRUCTURE , 17,
162
- :RFCTYPE_DECF16 , 23,
163
- :RFCTYPE_DECF34 , 24,
164
- :RFCTYPE_XMLDATA , 28,
165
- :RFCTYPE_STRING , 29,
166
- :RFCTYPE_XSTRING , 30,
167
- :RFCTYPE_BOX, 31,
168
- :RFCTYPE_GENERIC_BOX, 32,
169
- :_RFCTYPE_max_value
175
+ :RFCTYPE_CHAR, 0,
176
+ :RFCTYPE_DATE, 1,
177
+ :RFCTYPE_BCD, 2,
178
+ :RFCTYPE_TIME, 3,
179
+ :RFCTYPE_BYTE, 4,
180
+ :RFCTYPE_TABLE, 5,
181
+ :RFCTYPE_NUM, 6,
182
+ :RFCTYPE_FLOAT, 7,
183
+ :RFCTYPE_INT, 8,
184
+ :RFCTYPE_INT2, 9,
185
+ :RFCTYPE_INT1, 10,
186
+ :RFCTYPE_NULL, 14,
187
+ :RFCTYPE_ABAPOBJECT, 16,
188
+ :RFCTYPE_STRUCTURE, 17,
189
+ :RFCTYPE_DECF16, 23,
190
+ :RFCTYPE_DECF34, 24,
191
+ :RFCTYPE_XMLDATA, 28,
192
+ :RFCTYPE_STRING, 29,
193
+ :RFCTYPE_XSTRING, 30,
194
+ :RFCTYPE_BOX, 31,
195
+ :RFCTYPE_GENERIC_BOX, 32,
196
+ :_RFCTYPE_max_value
170
197
  )
171
198
 
172
199
  # Connection parameter wrapper (struct RFC_CONNECTION_PARAMETER in sapnwrfc.h)
173
200
  class RFCConnParam < FFI::Struct
174
201
  layout :name, :pointer,
175
- :value, :pointer
202
+ :value, :pointer
176
203
  end
177
204
 
178
205
  # Connection Details (struct RFC_ATTRIBUTES in sapnwrfc.h)
179
206
  class RFCConnection < FFI::Struct
180
- layout :dest, [:char, (64+1)*B_SIZE],
181
- :host, [:char, (100+1)*B_SIZE],
182
- :partnerHost, [:char, (100+1)*B_SIZE],
183
- :sysNumber, [:char, (2+1)*B_SIZE],
184
- :sysId, [:char, (8+1)*B_SIZE],
185
- :client, [:char, (3+1)*B_SIZE],
186
- :user, [:char, (12+1)*B_SIZE],
187
- :language, [:char, (2+1)*B_SIZE],
188
- :trace, [:char, (1+1)*B_SIZE],
189
- :isoLanguage, [:char, (2+1)*B_SIZE],
190
- :codepage, [:char, (4+1)*B_SIZE],
191
- :partnerCodepage, [:char, (4+1)*B_SIZE],
192
- :rfcRole, [:char, (1+1)*B_SIZE],
193
- :type, [:char, (1+1)*B_SIZE],
194
- :partnerType, [:char, (1+1)*B_SIZE],
195
- :rel, [:char, (4+1)*B_SIZE],
196
- :partnerRel, [:char, (4+1)*B_SIZE],
197
- :kernelRel, [:char, (4+1)*B_SIZE],
198
- :cpicConvId, [:char, (8+1)*B_SIZE],
199
- :progName, [:char, (128+1)*B_SIZE],
200
- :reserved, [:char, (86+1)*B_SIZE]
207
+ layout :dest, [:char, (64+1)*B_SIZE],
208
+ :host, [:char, (100+1)*B_SIZE],
209
+ :partnerHost, [:char, (100+1)*B_SIZE],
210
+ :sysNumber, [:char, (2+1)*B_SIZE],
211
+ :sysId, [:char, (8+1)*B_SIZE],
212
+ :client, [:char, (3+1)*B_SIZE],
213
+ :user, [:char, (12+1)*B_SIZE],
214
+ :language, [:char, (2+1)*B_SIZE],
215
+ :trace, [:char, (1+1)*B_SIZE],
216
+ :isoLanguage, [:char, (2+1)*B_SIZE],
217
+ :codepage, [:char, (4+1)*B_SIZE],
218
+ :partnerCodepage, [:char, (4+1)*B_SIZE],
219
+ :rfcRole, [:char, (1+1)*B_SIZE],
220
+ :type, [:char, (1+1)*B_SIZE],
221
+ :partnerType, [:char, (1+1)*B_SIZE],
222
+ :rel, [:char, (4+1)*B_SIZE],
223
+ :partnerRel, [:char, (4+1)*B_SIZE],
224
+ :kernelRel, [:char, (4+1)*B_SIZE],
225
+ :cpicConvId, [:char, (8+1)*B_SIZE],
226
+ :progName, [:char, (128+1)*B_SIZE],
227
+ :reserved, [:char, (86+1)*B_SIZE]
201
228
  end
202
229
 
203
230
  # Error info wrapper (struct RFC_ERROR_INFO in sapnwrfc.h)
204
231
  class RFCError < FFI::Struct
205
- layout :code, :int,
206
- :group, :int,
207
- :key, [:char, (128)*B_SIZE],
208
- :message, [:char, (512)*B_SIZE],
209
- :abapMsgClass, [:char, (20+1)*B_SIZE],
210
- :abapMsgType, [:char, (1+1)*B_SIZE],
211
- :abapMsgNumber, [:char, (3+1)*B_SIZE],
212
- :abapMsgV1, [:char, (50+1)*B_SIZE],
213
- :abapMsgV2, [:char, (50+1)*B_SIZE],
214
- :abapMsgV3, [:char, (50+1)*B_SIZE],
215
- :abapMsgV4, [:char, (50+1)*B_SIZE]
232
+ layout :code, :int,
233
+ :group, :int,
234
+ :key, [:char, (128)*B_SIZE],
235
+ :message, [:char, (512)*B_SIZE],
236
+ :abapMsgClass, [:char, (20+1)*B_SIZE],
237
+ :abapMsgType, [:char, (1+1)*B_SIZE],
238
+ :abapMsgNumber, [:char, (3+1)*B_SIZE],
239
+ :abapMsgV1, [:char, (50+1)*B_SIZE],
240
+ :abapMsgV2, [:char, (50+1)*B_SIZE],
241
+ :abapMsgV3, [:char, (50+1)*B_SIZE],
242
+ :abapMsgV4, [:char, (50+1)*B_SIZE]
216
243
  end
217
244
 
218
245
  # Function Parameter Description (struct RFC_PARAMETER_DESC in sapnwrfc.h)
219
246
  class RFCFuncParam < FFI::Struct
220
- layout :name, [:char, (30+1)*B_SIZE],
221
- :type, :int, #enum RFCTYPE
222
- :direction, :int, #enum RFC_DIRECTION
223
- :nucLength, :uint,
224
- :ucLength, :uint,
225
- :decimals, :uint,
226
- :typeDescHandle, :pointer, #RFC_TYPE_DESC_HANDLE
227
- :defaultValue, [:char, (30+1)*B_SIZE], #RFC_PARAMETER_DEFVALUE
228
- :parameterText, [:char, (79+1)*B_SIZE], #RFC_PARAMETER_TEXT
229
- :optional, :uchar, #RFC_BYTE
230
- :extendedDescription, :pointer
247
+ layout :name, [:char, (30+1)*B_SIZE],
248
+ :type, :int, #enum RFCTYPE
249
+ :direction, :int, #enum RFC_DIRECTION
250
+ :nucLength, :uint,
251
+ :ucLength, :uint,
252
+ :decimals, :uint,
253
+ :typeDescHandle, :pointer, #RFC_TYPE_DESC_HANDLE
254
+ :defaultValue, [:char, (30+1)*B_SIZE], #RFC_PARAMETER_DEFVALUE
255
+ :parameterText, [:char, (79+1)*B_SIZE], #RFC_PARAMETER_TEXT
256
+ :optional, :uchar, #RFC_BYTE
257
+ :extendedDescription, :pointer
231
258
  end
232
259
 
233
260
  class RFCFieldDesc < FFI::Struct
234
261
  layout :name, [:char, (30+1)*B_SIZE],
235
- :type, :int, #enum RFCTYPE
236
- :nucLength, :uint,
237
- :nucOffset, :uint,
238
- :ucLength, :uint,
239
- :ucOffset, :uint,
240
- :decimals, :uint,
241
- :typeDescHandle, :pointer, #RFC_TYPE_DESC_HANDLE
242
- :extendedDescription, :pointer
262
+ :type, :int, #enum RFCTYPE
263
+ :nucLength, :uint,
264
+ :nucOffset, :uint,
265
+ :ucLength, :uint,
266
+ :ucOffset, :uint,
267
+ :decimals, :uint,
268
+ :typeDescHandle, :pointer, #RFC_TYPE_DESC_HANDLE
269
+ :extendedDescription, :pointer
243
270
  end
244
271
 
245
272
  class RFCDataContainer < FFI::Struct
246
273
  layout :handle, :pointer
247
274
  end
248
275
 
249
- # typedef :RFCDataContainer, RFCStructureHandle
250
- # typedef :RFCDataContainer, RFCTableHandle
276
+ # typedef :RFCDataContainer, RFCStructureHandle
277
+ # typedef :RFCDataContainer, RFCTableHandle
251
278
 
252
279
  class RFC_FUNCTION_DESC_HANDLE < FFI::Struct
253
280
  layout :handle, :pointer
@@ -263,20 +290,20 @@ module NWRFCLib
263
290
 
264
291
  class RFC_DECF16 < FFI::Union
265
292
  layout :bytes, [:uchar, 8],
266
- :align, :double
293
+ :align, :double
267
294
  end
268
295
 
269
- # class SAP_MAX_ALIGN_T < FFI::Union
270
- # layout :align1, :long,
271
- # :align2, :double,
272
- # :align3, :pointer,
273
- # :align4,
274
- # end
296
+ # class SAP_MAX_ALIGN_T < FFI::Union
297
+ # layout :align1, :long,
298
+ # :align2, :double,
299
+ # :align3, :pointer,
300
+ # :align4,
301
+ # end
275
302
 
276
- # class RFC_DECF34 < FFI::Union
277
- # layout :bytes, [:uchar, 16],
278
- # :align, 16
279
- # end
303
+ # class RFC_DECF34 < FFI::Union
304
+ # layout :bytes, [:uchar, 16],
305
+ # :align, 16
306
+ # end
280
307
 
281
308
  #############################################################################################################
282
309
  # ATTACH FUNCTIONS
@@ -290,136 +317,136 @@ module NWRFCLib
290
317
 
291
318
  # Function mappings
292
319
  [
293
- [:add_exception, :RfcAddException, [:pointer, :pointer, :pointer], :int],
294
- [:add_function_desc, :RfcAddFunctionDesc, [:pointer, :pointer, :pointer], :int],
295
- [:add_parameter, :RfcAddParameter, [:pointer, :pointer, :pointer], :int],
296
- [:add_type_desc, :RfcAddTypeDesc, [:pointer, :pointer, :pointer], :int],
297
- [:add_type_field, :RfcAddTypeField, [:pointer, :pointer, :pointer], :int],
298
- # @method append_new_row(table_handle, error_handle)
299
- # @returns FFI::Pointer pointer to structure of new row
300
- # calls RfcAppendNewRow()
301
- [:append_new_row, :RfcAppendNewRow, [:pointer, :pointer], :pointer],
302
- # @method append_row(table_handle, structure, error_handle)
303
- # @returns Integer RC
304
- # calls RfcAppendRow()
305
- [:append_row, :RfcAppendRow, [:pointer, :pointer, :pointer], :int],
306
- [:clone_structure, :RfcCloneStructure, [:pointer, :pointer], :pointer],
307
- [:clone_table, :RfcCloneTable, [:pointer, :pointer], :pointer],
308
- [:close_connection, :RfcCloseConnection, [:pointer, :pointer], :int],
309
- [:confirm_transaction, :RfcConfirmTransaction, [:pointer, :pointer], :int],
310
- [:create_function, :RfcCreateFunction, [:pointer, :pointer], :pointer],
311
- [:create_function_desc, :RfcCreateFunctionDesc, [:pointer, :pointer], :pointer],
312
- [:create_structure, :RfcCreateStructure, [:pointer, :pointer], :pointer],
313
- [:create_table, :RfcCreateTable, [:pointer, :pointer], :pointer],
314
- [:create_transaction, :RfcCreateTransaction, [:pointer, :pointer, :pointer, :pointer], :pointer],
315
- [:create_type_desc, :RfcCreateTypeDesc, [:pointer, :pointer], :pointer],
316
- [:delete_all_rows, :RfcDeleteAllRows, [:pointer, :pointer], :int],
317
- [:delete_current_row, :RfcDeleteCurrentRow, [:pointer, :pointer], :int],
318
- [:describe_function, :RfcDescribeFunction, [:pointer, :pointer], :pointer],
319
- [:describe_type, :RfcDescribeType, [:pointer, :pointer], :pointer],
320
- [:destroy_function, :RfcDestroyFunction, [:pointer, :pointer], :int],
321
- [:destroy_function_desc, :RfcDestroyFunctionDesc, [:pointer, :pointer], :int],
322
- [:destroy_structure, :RfcDestroyStructure, [:pointer, :pointer], :int],
323
- [:destroy_table, :RfcDestroyTable, [:pointer, :pointer], :int],
324
- [:destroy_transaction, :RfcDestroyTransaction, [:pointer, :pointer], :int],
325
- [:destroy_type_desc, :RfcDestroyTypeDesc, [:pointer, :pointer], :int],
326
- [:enable_basxml, :RfcEnableBASXML, [:pointer, :pointer], :int],
327
- [:get_bytes, :RfcGetBytes, [:pointer, :pointer, :pointer, :uint, :pointer], :int],
328
- [:get_cached_function_desc, :RfcGetCachedFunctionDesc, [:pointer, :pointer, :pointer], :pointer],
329
- [:get_cached_type_desc, :RfcGetCachedTypeDesc, [:pointer, :pointer, :pointer], :pointer],
330
- [:get_chars, :RfcGetChars, [:pointer, :pointer, :pointer, :uint, :pointer], :int],
331
- [:get_connection_attributes, :RfcGetConnectionAttributes, [:pointer, :pointer, :pointer], :int],
332
- [:get_current_row, :RfcGetCurrentRow, [:pointer, :pointer], :pointer],
333
- [:get_date, :RfcGetDate, [:pointer, :pointer, :pointer, :pointer], :int],
334
- [:get_dec_f16, :RfcGetDecF16, [:pointer, :pointer, :pointer, :pointer], :int],
335
- [:get_dec_f34, :RfcGetDecF34, [:pointer, :pointer, :pointer, :pointer], :int],
336
- [:get_direction_as_string, :RfcGetDirectionAsString, [:pointer], :pointer],
337
- [:get_exception_count, :RfcGetExceptionCount, [:pointer, :pointer, :pointer], :int],
338
- [:get_exception_desc_by_index, :RfcGetExceptionDescByIndex, [:pointer, :uint, :pointer, :pointer], :int],
339
- [:get_exception_desc_by_name, :RfcGetExceptionDescByName, [:pointer, :pointer, :pointer, :pointer], :int],
340
- [:get_field_count, :RfcGetFieldCount, [:pointer, :pointer, :pointer], :int],
341
- [:get_field_desc_by_index, :RfcGetFieldDescByIndex, [:pointer, :uint, :pointer, :pointer], :int],
342
- [:get_field_desc_by_name, :RfcGetFieldDescByName, [:pointer, :pointer, :pointer, :pointer], :int],
343
- [:get_float, :RfcGetFloat, [:pointer, :pointer, :pointer, :pointer], :int],
344
- [:get_function_desc, :RfcGetFunctionDesc, [:pointer, :pointer, :pointer], :pointer],
345
- [:get_function_name, :RfcGetFunctionName, [:pointer, :pointer, :pointer], :int],
346
- [:get_int, :RfcGetInt, [:pointer, :pointer, :pointer, :pointer], :int],
347
- [:get_int1, :RfcGetInt1, [:pointer, :pointer, :pointer, :pointer], :int],
348
- [:get_int2, :RfcGetInt2, [:pointer, :pointer, :pointer, :pointer], :int],
349
- [:get_num, :RfcGetNum, [:pointer, :pointer, :pointer, :uint, :pointer], :int],
350
- [:get_parameter_count, :RfcGetParameterCount, [:pointer, :pointer, :pointer], :int],
351
- [:get_parameter_desc_by_index, :RfcGetParameterDescByIndex, [:pointer, :uint, :pointer, :pointer], :int],
352
- [:get_parameter_desc_by_name, :RfcGetParameterDescByName, [:pointer, :pointer, :pointer, :pointer], :int],
353
- [:get_partner_snc_key, :RfcGetPartnerSNCKey, [:pointer, :pointer, :pointer, :pointer], :int],
354
- [:get_partner_snc_name, :RfcGetPartnerSNCName, [:pointer, :pointer, :uint, :pointer], :int],
355
- [:get_partner_sso_ticket, :RfcGetPartnerSSOTicket, [:pointer, :pointer, :pointer, :pointer], :int],
356
- [:get_rc_as_string, :RfcGetRcAsString, [:pointer], :pointer],
357
- [:get_row_count, :RfcGetRowCount, [:pointer, :pointer, :pointer], :int],
358
- [:get_string, :RfcGetString, [:pointer, :pointer, :pointer, :uint, :pointer, :pointer], :int],
359
- [:get_string_length, :RfcGetStringLength, [:pointer, :pointer, :pointer, :pointer], :int],
360
- [:get_structure, :RfcGetStructure, [:pointer, :pointer, :pointer, :pointer], :int],
361
- [:get_table, :RfcGetTable, [:pointer, :pointer, :pointer, :pointer], :int],
362
- [:get_time, :RfcGetTime, [:pointer, :pointer, :pointer, :pointer], :int],
363
- [:get_transaction_id, :RfcGetTransactionID, [:pointer, :pointer, :pointer], :int],
364
- [:get_type_as_string, :RfcGetTypeAsString, [:pointer], :pointer],
365
- [:get_type_desc, :RfcGetTypeDesc, [:pointer, :pointer, :pointer], :pointer],
366
- [:get_type_length, :RfcGetTypeLength, [:pointer, :pointer, :pointer, :pointer], :int],
367
- [:get_type_name, :RfcGetTypeName, [:pointer, :pointer, :pointer], :int],
368
- [:get_version, :RfcGetVersion, [:pointer, :pointer, :pointer], :pointer],
369
- [:get_x_string, :RfcGetXString, [:pointer, :pointer, :pointer, :uint, :pointer, :pointer], :int],
370
- [:init, :RfcInit, [:pointer], :int],
371
- [:insert_new_row, :RfcInsertNewRow, [:pointer, :pointer], :pointer],
372
- [:insert_row, :RfcInsertRow, [:pointer, :pointer, :pointer], :int],
373
- [:install_generic_server_function, :RfcInstallGenericServerFunction, [:pointer, :pointer, :pointer], :int],
374
- [:install_server_function, :RfcInstallServerFunction, [:pointer, :pointer, :funcimpl, :pointer], :int],
375
- [:install_transaction_handlers, :RfcInstallTransactionHandlers, [:pointer, :pointer, :pointer, :pointer, :pointer, :pointer], :int],
376
- [:invoke, :RfcInvoke, [:pointer, :pointer, :pointer], :int],
377
- [:invoke_in_transaction, :RfcInvokeInTransaction, [:pointer, :pointer, :pointer], :int],
378
- [:is_basxml_supported, :RfcIsBASXMLSupported, [:pointer, :pointer, :pointer], :int],
379
- #[:is_connection_handle_valid, :RfcIsConnectionHandleValid, [:pointer, :pointer, :pointer], :int],
380
- [:is_parameter_active, :RfcIsParameterActive, [:pointer, :pointer, :pointer, :pointer], :int],
381
- [:listen_and_dispatch, :RfcListenAndDispatch, [:pointer, :int, :pointer], :int],
382
- [:move_to, :RfcMoveTo, [:pointer, :uint, :pointer], :int],
383
- [:move_to_first_row, :RfcMoveToFirstRow, [:pointer, :pointer], :int],
384
- [:move_to_last_row, :RfcMoveToLastRow, [:pointer, :pointer], :int],
385
- [:move_to_next_row, :RfcMoveToNextRow, [:pointer, :pointer], :int],
386
- [:move_to_previous_row, :RfcMoveToPreviousRow, [:pointer, :pointer], :int],
387
- [:open_connection, :RfcOpenConnection, [:pointer, :uint, :pointer], :pointer],
388
- [:ping, :RfcPing, [:pointer, :pointer], :int],
389
- [:register_server, :RfcRegisterServer, [:pointer, :uint, :pointer], :pointer],
390
- [:reload_ini_file, :RfcReloadIniFile, [:pointer], :int],
391
- # [:remove_function_desc, :RfcRemoveFunctionDesc, [:pointer, :pointer, :pointer], :int],
392
- # [:remove_type_desc, :RfcRemoveTypeDesc, [:pointer, :pointer, :pointer], :int],
393
- [:reset_server_context, :RfcResetServerContext, [:pointer, :pointer], :int],
394
- [:sapuc_to_utf8, :RfcSAPUCToUTF8, [:pointer, :uint, :pointer, :pointer, :pointer, :pointer], :int],
395
- [:set_bytes, :RfcSetBytes, [:pointer, :pointer, :pointer, :uint, :pointer], :int],
396
- [:set_chars, :RfcSetChars, [:pointer, :pointer, :pointer, :uint, :pointer], :int],
397
- [:set_date, :RfcSetDate, [:pointer, :pointer, :pointer, :pointer], :int],
398
- #[:set_dec_f16, :RfcSetDecF16, [:pointer, :pointer, :pointer, :pointer], :int],
399
- [:set_dec_f16, :RfcSetDecF16, [:pointer, :pointer, RFC_DECF16.by_value, :pointer], :int],
400
- [:set_dec_f34, :RfcSetDecF34, [:pointer, :pointer, :pointer, :pointer], :int],
401
- [:set_float, :RfcSetFloat, [:pointer, :pointer, :double, :pointer], :int],
402
- [:set_ini_path, :RfcSetIniPath, [:pointer, :pointer], :int],
403
- [:set_int, :RfcSetInt, [:pointer, :pointer, :long, :pointer], :int],
404
- [:set_int1, :RfcSetInt1, [:pointer, :pointer, :uint8, :pointer], :int],
405
- [:set_int2, :RfcSetInt2, [:pointer, :pointer, :short, :pointer], :int],
406
- [:set_num, :RfcSetNum, [:pointer, :pointer, :pointer, :uint, :pointer], :int],
407
- [:set_parameter_active, :RfcSetParameterActive, [:pointer, :pointer, :int, :pointer], :int],
408
- [:set_string, :RfcSetString, [:pointer, :pointer, :pointer, :uint, :pointer], :int],
409
- [:set_structure, :RfcSetStructure, [:pointer, :pointer, :pointer, :pointer], :int],
410
- [:set_table, :RfcSetTable, [:pointer, :pointer, :pointer, :pointer], :int],
411
- [:set_time, :RfcSetTime, [:pointer, :pointer, :pointer, :pointer], :int],
412
- #[:set_trace_dir, :RfcSetTraceDir, [:pointer, :pointer], :int],
413
- #[:set_trace_encoding, :RfcSetTraceEncoding, [:pointer, :pointer], :int],
414
- #[:set_trace_level, :RfcSetTraceLevel, [:pointer, :pointer, :uint, :pointer], :int],
415
- [:set_type_length, :RfcSetTypeLength, [:pointer, :uint, :uint, :pointer], :int],
416
- [:set_x_string, :RfcSetXString, [:pointer, :pointer, :pointer, :uint, :pointer], :int],
417
- [:snc_key_to_name, :RfcSNCKeyToName, [:pointer, :pointer, :uint, :pointer, :uint, :pointer], :int],
418
- [:snc_name_to_key, :RfcSNCNameToKey, [:pointer, :pointer, :pointer, :pointer, :pointer], :int],
419
- [:start_server, :RfcStartServer, [:int, :pointer, :pointer, :uint, :pointer], :pointer],
420
- [:submit_transaction, :RfcSubmitTransaction, [:pointer, :pointer], :int],
421
- [:utf8_to_sapuc, :RfcUTF8ToSAPUC, [:pointer, :uint, :pointer, :pointer, :pointer, :pointer], :int]
422
- ].each{|funcsig|
320
+ [:add_exception, :RfcAddException, [:pointer, :pointer, :pointer], :int],
321
+ [:add_function_desc, :RfcAddFunctionDesc, [:pointer, :pointer, :pointer], :int],
322
+ [:add_parameter, :RfcAddParameter, [:pointer, :pointer, :pointer], :int],
323
+ [:add_type_desc, :RfcAddTypeDesc, [:pointer, :pointer, :pointer], :int],
324
+ [:add_type_field, :RfcAddTypeField, [:pointer, :pointer, :pointer], :int],
325
+ # @method append_new_row(table_handle, error_handle)
326
+ # @returns FFI::Pointer pointer to structure of new row
327
+ # calls RfcAppendNewRow()
328
+ [:append_new_row, :RfcAppendNewRow, [:pointer, :pointer], :pointer],
329
+ # @method append_row(table_handle, structure, error_handle)
330
+ # @returns Integer RC
331
+ # calls RfcAppendRow()
332
+ [:append_row, :RfcAppendRow, [:pointer, :pointer, :pointer], :int],
333
+ [:clone_structure, :RfcCloneStructure, [:pointer, :pointer], :pointer],
334
+ [:clone_table, :RfcCloneTable, [:pointer, :pointer], :pointer],
335
+ [:close_connection, :RfcCloseConnection, [:pointer, :pointer], :int],
336
+ [:confirm_transaction, :RfcConfirmTransaction, [:pointer, :pointer], :int],
337
+ [:create_function, :RfcCreateFunction, [:pointer, :pointer], :pointer],
338
+ [:create_function_desc, :RfcCreateFunctionDesc, [:pointer, :pointer], :pointer],
339
+ [:create_structure, :RfcCreateStructure, [:pointer, :pointer], :pointer],
340
+ [:create_table, :RfcCreateTable, [:pointer, :pointer], :pointer],
341
+ [:create_transaction, :RfcCreateTransaction, [:pointer, :pointer, :pointer, :pointer], :pointer],
342
+ [:create_type_desc, :RfcCreateTypeDesc, [:pointer, :pointer], :pointer],
343
+ [:delete_all_rows, :RfcDeleteAllRows, [:pointer, :pointer], :int],
344
+ [:delete_current_row, :RfcDeleteCurrentRow, [:pointer, :pointer], :int],
345
+ [:describe_function, :RfcDescribeFunction, [:pointer, :pointer], :pointer],
346
+ [:describe_type, :RfcDescribeType, [:pointer, :pointer], :pointer],
347
+ [:destroy_function, :RfcDestroyFunction, [:pointer, :pointer], :int],
348
+ [:destroy_function_desc, :RfcDestroyFunctionDesc, [:pointer, :pointer], :int],
349
+ [:destroy_structure, :RfcDestroyStructure, [:pointer, :pointer], :int],
350
+ [:destroy_table, :RfcDestroyTable, [:pointer, :pointer], :int],
351
+ [:destroy_transaction, :RfcDestroyTransaction, [:pointer, :pointer], :int],
352
+ [:destroy_type_desc, :RfcDestroyTypeDesc, [:pointer, :pointer], :int],
353
+ [:enable_basxml, :RfcEnableBASXML, [:pointer, :pointer], :int],
354
+ [:get_bytes, :RfcGetBytes, [:pointer, :pointer, :pointer, :uint, :pointer], :int],
355
+ [:get_cached_function_desc, :RfcGetCachedFunctionDesc, [:pointer, :pointer, :pointer], :pointer],
356
+ [:get_cached_type_desc, :RfcGetCachedTypeDesc, [:pointer, :pointer, :pointer], :pointer],
357
+ [:get_chars, :RfcGetChars, [:pointer, :pointer, :pointer, :uint, :pointer], :int],
358
+ [:get_connection_attributes, :RfcGetConnectionAttributes, [:pointer, :pointer, :pointer], :int],
359
+ [:get_current_row, :RfcGetCurrentRow, [:pointer, :pointer], :pointer],
360
+ [:get_date, :RfcGetDate, [:pointer, :pointer, :pointer, :pointer], :int],
361
+ [:get_dec_f16, :RfcGetDecF16, [:pointer, :pointer, :pointer, :pointer], :int],
362
+ [:get_dec_f34, :RfcGetDecF34, [:pointer, :pointer, :pointer, :pointer], :int],
363
+ [:get_direction_as_string, :RfcGetDirectionAsString, [:pointer], :pointer],
364
+ [:get_exception_count, :RfcGetExceptionCount, [:pointer, :pointer, :pointer], :int],
365
+ [:get_exception_desc_by_index, :RfcGetExceptionDescByIndex, [:pointer, :uint, :pointer, :pointer], :int],
366
+ [:get_exception_desc_by_name, :RfcGetExceptionDescByName, [:pointer, :pointer, :pointer, :pointer], :int],
367
+ [:get_field_count, :RfcGetFieldCount, [:pointer, :pointer, :pointer], :int],
368
+ [:get_field_desc_by_index, :RfcGetFieldDescByIndex, [:pointer, :uint, :pointer, :pointer], :int],
369
+ [:get_field_desc_by_name, :RfcGetFieldDescByName, [:pointer, :pointer, :pointer, :pointer], :int],
370
+ [:get_float, :RfcGetFloat, [:pointer, :pointer, :pointer, :pointer], :int],
371
+ [:get_function_desc, :RfcGetFunctionDesc, [:pointer, :pointer, :pointer], :pointer],
372
+ [:get_function_name, :RfcGetFunctionName, [:pointer, :pointer, :pointer], :int],
373
+ [:get_int, :RfcGetInt, [:pointer, :pointer, :pointer, :pointer], :int],
374
+ [:get_int1, :RfcGetInt1, [:pointer, :pointer, :pointer, :pointer], :int],
375
+ [:get_int2, :RfcGetInt2, [:pointer, :pointer, :pointer, :pointer], :int],
376
+ [:get_num, :RfcGetNum, [:pointer, :pointer, :pointer, :uint, :pointer], :int],
377
+ [:get_parameter_count, :RfcGetParameterCount, [:pointer, :pointer, :pointer], :int],
378
+ [:get_parameter_desc_by_index, :RfcGetParameterDescByIndex, [:pointer, :uint, :pointer, :pointer], :int],
379
+ [:get_parameter_desc_by_name, :RfcGetParameterDescByName, [:pointer, :pointer, :pointer, :pointer], :int],
380
+ [:get_partner_snc_key, :RfcGetPartnerSNCKey, [:pointer, :pointer, :pointer, :pointer], :int],
381
+ [:get_partner_snc_name, :RfcGetPartnerSNCName, [:pointer, :pointer, :uint, :pointer], :int],
382
+ [:get_partner_sso_ticket, :RfcGetPartnerSSOTicket, [:pointer, :pointer, :pointer, :pointer], :int],
383
+ [:get_rc_as_string, :RfcGetRcAsString, [:pointer], :pointer],
384
+ [:get_row_count, :RfcGetRowCount, [:pointer, :pointer, :pointer], :int],
385
+ [:get_string, :RfcGetString, [:pointer, :pointer, :pointer, :uint, :pointer, :pointer], :int],
386
+ [:get_string_length, :RfcGetStringLength, [:pointer, :pointer, :pointer, :pointer], :int],
387
+ [:get_structure, :RfcGetStructure, [:pointer, :pointer, :pointer, :pointer], :int],
388
+ [:get_table, :RfcGetTable, [:pointer, :pointer, :pointer, :pointer], :int],
389
+ [:get_time, :RfcGetTime, [:pointer, :pointer, :pointer, :pointer], :int],
390
+ [:get_transaction_id, :RfcGetTransactionID, [:pointer, :pointer, :pointer], :int],
391
+ [:get_type_as_string, :RfcGetTypeAsString, [:pointer], :pointer],
392
+ [:get_type_desc, :RfcGetTypeDesc, [:pointer, :pointer, :pointer], :pointer],
393
+ [:get_type_length, :RfcGetTypeLength, [:pointer, :pointer, :pointer, :pointer], :int],
394
+ [:get_type_name, :RfcGetTypeName, [:pointer, :pointer, :pointer], :int],
395
+ [:get_version, :RfcGetVersion, [:pointer, :pointer, :pointer], :pointer],
396
+ [:get_x_string, :RfcGetXString, [:pointer, :pointer, :pointer, :uint, :pointer, :pointer], :int],
397
+ [:init, :RfcInit, [:pointer], :int],
398
+ [:insert_new_row, :RfcInsertNewRow, [:pointer, :pointer], :pointer],
399
+ [:insert_row, :RfcInsertRow, [:pointer, :pointer, :pointer], :int],
400
+ [:install_generic_server_function, :RfcInstallGenericServerFunction, [:pointer, :pointer, :pointer], :int],
401
+ [:install_server_function, :RfcInstallServerFunction, [:pointer, :pointer, :funcimpl, :pointer], :int],
402
+ [:install_transaction_handlers, :RfcInstallTransactionHandlers, [:pointer, :pointer, :pointer, :pointer, :pointer, :pointer], :int],
403
+ [:invoke, :RfcInvoke, [:pointer, :pointer, :pointer], :int],
404
+ [:invoke_in_transaction, :RfcInvokeInTransaction, [:pointer, :pointer, :pointer], :int],
405
+ [:is_basxml_supported, :RfcIsBASXMLSupported, [:pointer, :pointer, :pointer], :int],
406
+ #[:is_connection_handle_valid, :RfcIsConnectionHandleValid, [:pointer, :pointer, :pointer], :int],
407
+ [:is_parameter_active, :RfcIsParameterActive, [:pointer, :pointer, :pointer, :pointer], :int],
408
+ [:listen_and_dispatch, :RfcListenAndDispatch, [:pointer, :int, :pointer], :int],
409
+ [:move_to, :RfcMoveTo, [:pointer, :uint, :pointer], :int],
410
+ [:move_to_first_row, :RfcMoveToFirstRow, [:pointer, :pointer], :int],
411
+ [:move_to_last_row, :RfcMoveToLastRow, [:pointer, :pointer], :int],
412
+ [:move_to_next_row, :RfcMoveToNextRow, [:pointer, :pointer], :int],
413
+ [:move_to_previous_row, :RfcMoveToPreviousRow, [:pointer, :pointer], :int],
414
+ [:open_connection, :RfcOpenConnection, [:pointer, :uint, :pointer], :pointer],
415
+ [:ping, :RfcPing, [:pointer, :pointer], :int],
416
+ [:register_server, :RfcRegisterServer, [:pointer, :uint, :pointer], :pointer],
417
+ [:reload_ini_file, :RfcReloadIniFile, [:pointer], :int],
418
+ # [:remove_function_desc, :RfcRemoveFunctionDesc, [:pointer, :pointer, :pointer], :int],
419
+ # [:remove_type_desc, :RfcRemoveTypeDesc, [:pointer, :pointer, :pointer], :int],
420
+ [:reset_server_context, :RfcResetServerContext, [:pointer, :pointer], :int],
421
+ [:sapuc_to_utf8, :RfcSAPUCToUTF8, [:pointer, :uint, :pointer, :pointer, :pointer, :pointer], :int],
422
+ [:set_bytes, :RfcSetBytes, [:pointer, :pointer, :pointer, :uint, :pointer], :int],
423
+ [:set_chars, :RfcSetChars, [:pointer, :pointer, :pointer, :uint, :pointer], :int],
424
+ [:set_date, :RfcSetDate, [:pointer, :pointer, :pointer, :pointer], :int],
425
+ #[:set_dec_f16, :RfcSetDecF16, [:pointer, :pointer, :pointer, :pointer], :int],
426
+ [:set_dec_f16, :RfcSetDecF16, [:pointer, :pointer, RFC_DECF16.by_value, :pointer], :int],
427
+ [:set_dec_f34, :RfcSetDecF34, [:pointer, :pointer, :pointer, :pointer], :int],
428
+ [:set_float, :RfcSetFloat, [:pointer, :pointer, :double, :pointer], :int],
429
+ [:set_ini_path, :RfcSetIniPath, [:pointer, :pointer], :int],
430
+ [:set_int, :RfcSetInt, [:pointer, :pointer, :long, :pointer], :int],
431
+ [:set_int1, :RfcSetInt1, [:pointer, :pointer, :uint8, :pointer], :int],
432
+ [:set_int2, :RfcSetInt2, [:pointer, :pointer, :short, :pointer], :int],
433
+ [:set_num, :RfcSetNum, [:pointer, :pointer, :pointer, :uint, :pointer], :int],
434
+ [:set_parameter_active, :RfcSetParameterActive, [:pointer, :pointer, :int, :pointer], :int],
435
+ [:set_string, :RfcSetString, [:pointer, :pointer, :pointer, :uint, :pointer], :int],
436
+ [:set_structure, :RfcSetStructure, [:pointer, :pointer, :pointer, :pointer], :int],
437
+ [:set_table, :RfcSetTable, [:pointer, :pointer, :pointer, :pointer], :int],
438
+ [:set_time, :RfcSetTime, [:pointer, :pointer, :pointer, :pointer], :int],
439
+ #[:set_trace_dir, :RfcSetTraceDir, [:pointer, :pointer], :int],
440
+ #[:set_trace_encoding, :RfcSetTraceEncoding, [:pointer, :pointer], :int],
441
+ #[:set_trace_level, :RfcSetTraceLevel, [:pointer, :pointer, :uint, :pointer], :int],
442
+ [:set_type_length, :RfcSetTypeLength, [:pointer, :uint, :uint, :pointer], :int],
443
+ [:set_x_string, :RfcSetXString, [:pointer, :pointer, :pointer, :uint, :pointer], :int],
444
+ [:snc_key_to_name, :RfcSNCKeyToName, [:pointer, :pointer, :uint, :pointer, :uint, :pointer], :int],
445
+ [:snc_name_to_key, :RfcSNCNameToKey, [:pointer, :pointer, :pointer, :pointer, :pointer], :int],
446
+ [:start_server, :RfcStartServer, [:int, :pointer, :pointer, :uint, :pointer], :pointer],
447
+ [:submit_transaction, :RfcSubmitTransaction, [:pointer, :pointer], :int],
448
+ [:utf8_to_sapuc, :RfcUTF8ToSAPUC, [:pointer, :uint, :pointer, :pointer, :pointer, :pointer], :int]
449
+ ].each { |funcsig|
423
450
  attach_function(funcsig[0], funcsig[1], funcsig[2], funcsig[3], :blocking => true)
424
451
  }
425
452
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nwrfc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Martin Ceronio
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-08 00:00:00.000000000 Z
11
+ date: 2015-06-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi