nwrfc 0.0.5 → 0.0.6
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 +15 -0
- data/README.rdoc +124 -120
- data/Rakefile +8 -8
- data/lib/nwrfc.rb +390 -389
- data/lib/nwrfc/datacontainer.rb +337 -337
- data/lib/nwrfc/nwerror.rb +39 -24
- data/lib/nwrfc/nwrfclib.rb +436 -436
- data/lib/nwrfc/server.rb +45 -45
- metadata +37 -59
data/lib/nwrfc/server.rb
CHANGED
@@ -1,46 +1,46 @@
|
|
1
|
-
module NWRFC
|
2
|
-
|
3
|
-
# Implementation of a server to host RFC functions to be called from an ABAP system
|
4
|
-
class Server
|
5
|
-
|
6
|
-
TIMEOUT = 0
|
7
|
-
|
8
|
-
# Register a server with the given gateway and program ID
|
9
|
-
def initialize(params)
|
10
|
-
raise "Rarameters must be a Hash" unless params.instance_of? Hash
|
11
|
-
@rparams = NWRFC.make_conn_params(params)
|
12
|
-
raise "Could not create valid pointer from parameters" unless @rparams.instance_of? FFI::MemoryPointer
|
13
|
-
@error = NWRFCLib::RFCError.new
|
14
|
-
@handle = NWRFCLib.register_server(@rparams, params.size, @error)
|
15
|
-
NWRFC.check_error(@error)
|
16
|
-
end
|
17
|
-
|
18
|
-
|
19
|
-
# Start serving an RFC function, given the definition and the block,
|
20
|
-
# to which the connection and functions are yielded
|
21
|
-
def serve(function, &block)
|
22
|
-
# Establish callback handler
|
23
|
-
callback = Proc.new do |connection, function_handle, error|
|
24
|
-
function_call = FunctionCall.new(function_handle)
|
25
|
-
yield(function_call)
|
26
|
-
end
|
27
|
-
rc = NWRFCLib.install_server_function(nil, function.desc, callback, @error)
|
28
|
-
NWRFC.check_error(@error) if rc > 0
|
29
|
-
|
30
|
-
# Server loop
|
31
|
-
while (rc==NWRFCLib::RFC_RC[:RFC_OK] || rc==NWRFCLib::RFC_RC[:RFC_RETRY] || rc==NWRFCLib::RFC_RC[:RFC_ABAP_EXCEPTION])
|
32
|
-
rc = NWRFCLib.listen_and_dispatch(@handle, TIMEOUT, @error)
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
# Disconnect from the server
|
37
|
-
def disconnect
|
38
|
-
NWRFCLib.close_connection(@handle, @error)
|
39
|
-
NWRFC.check_error(@error)
|
40
|
-
end
|
41
|
-
|
42
|
-
alias :close :disconnect
|
43
|
-
|
44
|
-
end
|
45
|
-
|
1
|
+
module NWRFC
|
2
|
+
|
3
|
+
# Implementation of a server to host RFC functions to be called from an ABAP system
|
4
|
+
class Server
|
5
|
+
|
6
|
+
TIMEOUT = 0
|
7
|
+
|
8
|
+
# Register a server with the given gateway and program ID
|
9
|
+
def initialize(params)
|
10
|
+
raise "Rarameters must be a Hash" unless params.instance_of? Hash
|
11
|
+
@rparams = NWRFC.make_conn_params(params)
|
12
|
+
raise "Could not create valid pointer from parameters" unless @rparams.instance_of? FFI::MemoryPointer
|
13
|
+
@error = NWRFCLib::RFCError.new
|
14
|
+
@handle = NWRFCLib.register_server(@rparams, params.size, @error)
|
15
|
+
NWRFC.check_error(@error)
|
16
|
+
end
|
17
|
+
|
18
|
+
|
19
|
+
# Start serving an RFC function, given the definition and the block,
|
20
|
+
# to which the connection and functions are yielded
|
21
|
+
def serve(function, &block)
|
22
|
+
# Establish callback handler
|
23
|
+
callback = Proc.new do |connection, function_handle, error|
|
24
|
+
function_call = FunctionCall.new(function_handle)
|
25
|
+
yield(function_call)
|
26
|
+
end
|
27
|
+
rc = NWRFCLib.install_server_function(nil, function.desc, callback, @error)
|
28
|
+
NWRFC.check_error(@error) if rc > 0
|
29
|
+
|
30
|
+
# Server loop
|
31
|
+
while (rc==NWRFCLib::RFC_RC[:RFC_OK] || rc==NWRFCLib::RFC_RC[:RFC_RETRY] || rc==NWRFCLib::RFC_RC[:RFC_ABAP_EXCEPTION])
|
32
|
+
rc = NWRFCLib.listen_and_dispatch(@handle, TIMEOUT, @error)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
# Disconnect from the server
|
37
|
+
def disconnect
|
38
|
+
NWRFCLib.close_connection(@handle, @error)
|
39
|
+
NWRFC.check_error(@error)
|
40
|
+
end
|
41
|
+
|
42
|
+
alias :close :disconnect
|
43
|
+
|
44
|
+
end
|
45
|
+
|
46
46
|
end
|
metadata
CHANGED
@@ -1,87 +1,65 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: nwrfc
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 0
|
9
|
-
- 5
|
10
|
-
version: 0.0.5
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.6
|
11
5
|
platform: ruby
|
12
|
-
authors:
|
6
|
+
authors:
|
13
7
|
- Martin Ceronio
|
14
8
|
autorequire:
|
15
9
|
bindir: bin
|
16
10
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
- !ruby/object:Gem::Dependency
|
11
|
+
date: 2014-06-30 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
21
14
|
name: ffi
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
- - ">="
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
hash: 1
|
29
|
-
segments:
|
30
|
-
- 1
|
31
|
-
- 0
|
32
|
-
- 11
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ! '>='
|
18
|
+
- !ruby/object:Gem::Version
|
33
19
|
version: 1.0.11
|
34
20
|
type: :runtime
|
35
|
-
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ! '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 1.0.11
|
36
27
|
description: SAP Netweaver RFC Library Wrapper using Ruby-FFI
|
37
28
|
email: martin.ceronio@infosize.co.za
|
38
29
|
executables: []
|
39
|
-
|
40
30
|
extensions: []
|
41
|
-
|
42
|
-
extra_rdoc_files:
|
31
|
+
extra_rdoc_files:
|
43
32
|
- README.rdoc
|
44
|
-
files:
|
33
|
+
files:
|
45
34
|
- README.rdoc
|
46
35
|
- Rakefile
|
47
|
-
- lib/nwrfc.rb
|
48
|
-
- lib/nwrfc/server.rb
|
49
36
|
- lib/nwrfc/datacontainer.rb
|
50
37
|
- lib/nwrfc/nwerror.rb
|
51
38
|
- lib/nwrfc/nwrfclib.rb
|
39
|
+
- lib/nwrfc/server.rb
|
40
|
+
- lib/nwrfc.rb
|
52
41
|
homepage: http://rubygems.org/gems/nwrfc
|
53
|
-
licenses:
|
54
|
-
|
42
|
+
licenses:
|
43
|
+
- MIT
|
44
|
+
metadata: {}
|
55
45
|
post_install_message:
|
56
46
|
rdoc_options: []
|
57
|
-
|
58
|
-
require_paths:
|
47
|
+
require_paths:
|
59
48
|
- lib
|
60
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
none: false
|
71
|
-
requirements:
|
72
|
-
- - ">="
|
73
|
-
- !ruby/object:Gem::Version
|
74
|
-
hash: 3
|
75
|
-
segments:
|
76
|
-
- 0
|
77
|
-
version: "0"
|
49
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
55
|
+
requirements:
|
56
|
+
- - ! '>='
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
version: '0'
|
78
59
|
requirements: []
|
79
|
-
|
80
60
|
rubyforge_project:
|
81
|
-
rubygems_version: 1.
|
61
|
+
rubygems_version: 2.1.11
|
82
62
|
signing_key:
|
83
|
-
specification_version:
|
63
|
+
specification_version: 4
|
84
64
|
summary: SAP Netweaver RFC Library Wrapper
|
85
65
|
test_files: []
|
86
|
-
|
87
|
-
has_rdoc: true
|