libcml 1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/lib/libcml.rb +94 -0
- metadata +58 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: 4ee0fad31cc402e29f085e63b279e9915ec582ff
|
|
4
|
+
data.tar.gz: 739b5cdc49dcd9407b29e01fe38e437c8572008f
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 9f8a4f7be445926bbf764638db6b40a3c4c4fc09ed36b03d6724d770ae0ee8bfbb6d556fdadad50ed6c63a5a8b0ce30fd2bc919e2823873a7b15c37d1d12f942
|
|
7
|
+
data.tar.gz: 414f1676b7163635223ed4878b8c0cf7720a3ddf2680564872c876276d54026f1e051a2edbf91855de02b77a6e780cf5037301a47cc9443d95c04cd838904007
|
data/lib/libcml.rb
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
#!/usr/bin/ruby2.2
|
|
2
|
+
|
|
3
|
+
require 'ffi-rzmq'
|
|
4
|
+
require 'pry'
|
|
5
|
+
require 'json'
|
|
6
|
+
|
|
7
|
+
class Cml
|
|
8
|
+
|
|
9
|
+
#@@m_id = nil
|
|
10
|
+
#@@m_context = nil
|
|
11
|
+
#@@m_socket = nil
|
|
12
|
+
#@@m_socket_type = nil
|
|
13
|
+
|
|
14
|
+
def show_val
|
|
15
|
+
@m_id
|
|
16
|
+
end
|
|
17
|
+
def initialize(myid, socket_type=ZMQ::DEALER)
|
|
18
|
+
@m_id = myid
|
|
19
|
+
@m_context = ZMQ::Context.new
|
|
20
|
+
@m_socket = @m_context.socket(socket_type)
|
|
21
|
+
@m_socket.setsockopt(ZMQ::IDENTITY, myid)
|
|
22
|
+
@m_socket_type = socket_type
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def cml_connect(broker_ipc)
|
|
26
|
+
@m_socket.connect(broker_ipc)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def cml_ssl_connect(broker_ipc)
|
|
30
|
+
@m_socket.connect(broker_ipc)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def cml_ssh_connect(broker_ipc, username, ssh_ipaddr)
|
|
34
|
+
ZMQ.ssh.tunnel_connection(@m_socket, broker_ipc, username+"@"+ssh_ipaddr)
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def cml_bind(bind_ipc)
|
|
38
|
+
@m_socket.bind(bind_ipc)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def cml_send(peerid, msg,encoding='text')
|
|
42
|
+
#nmsg = ZMQ::Message.new(msg)
|
|
43
|
+
#@m_socket.sendmsg(nmsg)
|
|
44
|
+
@fmt_msg = {'version' => '1', 'from' => @m_id, 'to'=> peerid, 'encoding' => encoding, 'data' => msg}
|
|
45
|
+
@json_msg = @fmt_msg.to_json
|
|
46
|
+
print @json_msg
|
|
47
|
+
if @m_socket_type == ZMQ::ROUTER
|
|
48
|
+
rc = @m_socket.send_strings [peerid,"",@json_msg]
|
|
49
|
+
elsif @m_socket_type == ZMQ::DEALER
|
|
50
|
+
rc = @m_socket.send_strings ["",peerid,"",@json_msg]
|
|
51
|
+
else
|
|
52
|
+
rc = @m_socket.send_strings ["",peerid,"",@json_msg]
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def cml_recv(timeout=0)
|
|
57
|
+
if timeout == 0
|
|
58
|
+
@msg = @m_socket.recv_multipart()
|
|
59
|
+
@msg_len = @msg.length
|
|
60
|
+
return @msg[@msg_len - 1]
|
|
61
|
+
else
|
|
62
|
+
@poller = ZMQ::Poller()
|
|
63
|
+
@poller.register(@m_socket,ZMQ::POLLIN)
|
|
64
|
+
@sockets = dict(@poller.poll(timeout))
|
|
65
|
+
if @m_socket
|
|
66
|
+
@msg = @m_socket.recv_multipart()
|
|
67
|
+
puts @msg
|
|
68
|
+
@msg_len = @msg.length
|
|
69
|
+
return @msg[@msg_len - 1]
|
|
70
|
+
else
|
|
71
|
+
return False
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
def cml_broadcast(peerlist,msg,encoding="text")
|
|
77
|
+
for peer in peerlist
|
|
78
|
+
puts peer
|
|
79
|
+
cml_send(peer,msg,encoding)
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
def cml_disconnect()
|
|
84
|
+
@m_socket.close()
|
|
85
|
+
@m_context.term()
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
def myID()
|
|
89
|
+
return @m_id
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
#cml = Cml.new('my.svc')
|
|
94
|
+
#binding.pry
|
metadata
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: libcml
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: '1.0'
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Prashanth Chintalapudi
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2016-01-06 00:00:00.000000000 Z
|
|
12
|
+
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: ffi-rzmq
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - ">="
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: '0'
|
|
20
|
+
type: :runtime
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - ">="
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: '0'
|
|
27
|
+
description: CMl being a wrapper aroung zmq, binding for ruby.
|
|
28
|
+
email: prashanth@lavellenetworks.com
|
|
29
|
+
executables: []
|
|
30
|
+
extensions: []
|
|
31
|
+
extra_rdoc_files: []
|
|
32
|
+
files:
|
|
33
|
+
- lib/libcml.rb
|
|
34
|
+
homepage:
|
|
35
|
+
licenses:
|
|
36
|
+
- Lavelle Networks
|
|
37
|
+
metadata: {}
|
|
38
|
+
post_install_message:
|
|
39
|
+
rdoc_options: []
|
|
40
|
+
require_paths:
|
|
41
|
+
- lib
|
|
42
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
43
|
+
requirements:
|
|
44
|
+
- - ">="
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: '0'
|
|
47
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
48
|
+
requirements:
|
|
49
|
+
- - ">="
|
|
50
|
+
- !ruby/object:Gem::Version
|
|
51
|
+
version: '0'
|
|
52
|
+
requirements: []
|
|
53
|
+
rubyforge_project:
|
|
54
|
+
rubygems_version: 2.4.5
|
|
55
|
+
signing_key:
|
|
56
|
+
specification_version: 4
|
|
57
|
+
summary: Common Messaging Layer
|
|
58
|
+
test_files: []
|