nwrfc 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
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