Class: Cml
- Inherits:
-
Object
- Object
- Cml
- Defined in:
- lib/libcml.rb
Instance Method Summary collapse
- #cml_bind(bind_ipc) ⇒ Object
- #cml_broadcast(peerlist, msg, encoding = "text") ⇒ Object
- #cml_connect(broker_ipc) ⇒ Object
- #cml_disconnect ⇒ Object
- #cml_recv(timeout = 0) ⇒ Object
- #cml_send(peerid, msg, encoding = 'text') ⇒ Object
- #cml_ssh_connect(broker_ipc, username, ssh_ipaddr) ⇒ Object
- #cml_ssl_connect(broker_ipc) ⇒ Object
-
#initialize(myid, socket_type = ZMQ::DEALER) ⇒ Cml
constructor
A new instance of Cml.
- #myID ⇒ Object
-
#show_val ⇒ Object
@@m_id = nil @@m_context = nil @@m_socket = nil @@m_socket_type = nil.
Constructor Details
#initialize(myid, socket_type = ZMQ::DEALER) ⇒ Cml
Returns a new instance of Cml.
17 18 19 20 21 22 23 |
# File 'lib/libcml.rb', line 17 def initialize(myid, socket_type=ZMQ::DEALER) @m_id = myid @m_context = ZMQ::Context.new @m_socket = @m_context.socket(socket_type) @m_socket.setsockopt(ZMQ::IDENTITY, myid) @m_socket_type = socket_type end |
Instance Method Details
#cml_bind(bind_ipc) ⇒ Object
37 38 39 |
# File 'lib/libcml.rb', line 37 def cml_bind(bind_ipc) @m_socket.bind(bind_ipc) end |
#cml_broadcast(peerlist, msg, encoding = "text") ⇒ Object
76 77 78 79 80 81 |
# File 'lib/libcml.rb', line 76 def cml_broadcast(peerlist,msg,encoding="text") for peer in peerlist puts peer cml_send(peer,msg,encoding) end end |
#cml_connect(broker_ipc) ⇒ Object
25 26 27 |
# File 'lib/libcml.rb', line 25 def cml_connect(broker_ipc) @m_socket.connect(broker_ipc) end |
#cml_disconnect ⇒ Object
83 84 85 86 |
# File 'lib/libcml.rb', line 83 def cml_disconnect() @m_socket.close() @m_context.term() end |
#cml_recv(timeout = 0) ⇒ Object
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/libcml.rb', line 56 def cml_recv(timeout=0) if timeout == 0 @msg = @m_socket.recv_multipart() @msg_len = @msg.length return @msg[@msg_len - 1] else @poller = ZMQ::Poller() @poller.register(@m_socket,ZMQ::POLLIN) @sockets = dict(@poller.poll(timeout)) if @m_socket @msg = @m_socket.recv_multipart() puts @msg @msg_len = @msg.length return @msg[@msg_len - 1] else return False end end end |
#cml_send(peerid, msg, encoding = 'text') ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/libcml.rb', line 41 def cml_send(peerid, msg,encoding='text') #nmsg = ZMQ::Message.new(msg) #@m_socket.sendmsg(nmsg) @fmt_msg = {'version' => '1', 'from' => @m_id, 'to'=> peerid, 'encoding' => encoding, 'data' => msg} @json_msg = @fmt_msg.to_json print @json_msg if @m_socket_type == ZMQ::ROUTER rc = @m_socket.send_strings [peerid,"",@json_msg] elsif @m_socket_type == ZMQ::DEALER rc = @m_socket.send_strings ["",peerid,"",@json_msg] else rc = @m_socket.send_strings ["",peerid,"",@json_msg] end end |
#cml_ssh_connect(broker_ipc, username, ssh_ipaddr) ⇒ Object
33 34 35 |
# File 'lib/libcml.rb', line 33 def cml_ssh_connect(broker_ipc, username, ssh_ipaddr) ZMQ.ssh.tunnel_connection(@m_socket, broker_ipc, username+"@"+ssh_ipaddr) end |
#cml_ssl_connect(broker_ipc) ⇒ Object
29 30 31 |
# File 'lib/libcml.rb', line 29 def cml_ssl_connect(broker_ipc) @m_socket.connect(broker_ipc) end |
#myID ⇒ Object
88 89 90 |
# File 'lib/libcml.rb', line 88 def myID() return @m_id end |
#show_val ⇒ Object
@@m_id = nil @@m_context = nil @@m_socket = nil @@m_socket_type = nil
14 15 16 |
# File 'lib/libcml.rb', line 14 def show_val @m_id end |