Class: Cml

Inherits:
Object
  • Object
show all
Defined in:
lib/libcml.rb

Instance Method Summary collapse

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_disconnectObject



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

#myIDObject



88
89
90
# File 'lib/libcml.rb', line 88

def myID()
	return @m_id
end

#show_valObject

@@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