class Swiftcore::Analogger::ClientProtocol
Constants
- Cauthentication
- Ci
Attributes
connected[RW]
host[RW]
key[RW]
msg_queue[RW]
port[RW]
sender[RW]
Public Class Methods
connect(service = 'default', host = '127.0.0.1', port = 6766, key = nil)
click to toggle source
# File lib/swiftcore/Analogger/EMClient.rb, line 20 def self.connect(service = 'default', host = '127.0.0.1', port = 6766, key = nil) connection = ::EventMachine.connect(host, port.to_i, self) do |conn| conn.connected = false conn.msg_queue ||= '' conn.service = service conn.host = host conn.port = port conn.key = key end end
Public Instance Methods
close()
click to toggle source
# File lib/swiftcore/Analogger/EMClient.rb, line 56 def close close_connection_after_writing end
closed?()
click to toggle source
# File lib/swiftcore/Analogger/EMClient.rb, line 60 def closed? @connected end
connection_completed()
click to toggle source
# File lib/swiftcore/Analogger/EMClient.rb, line 31 def connection_completed @connected = true pos = 0 log(Cauthentication,"#{@key}",true) send_data @msg_queue # @sender = EM::Timer.new(1) {send_data @msg_queue if @connected; @msg_queue = ''} # while @msg_queue.length > pos # msg = @msg_queue[pos] # pos += 1 # break unless log(*msg) # end # if pos > 0 # @msg_queue.slice!(0..(pos - 1)) # end end
log(severity,msg,immediate=false)
click to toggle source
# File lib/swiftcore/Analogger/EMClient.rb, line 70 def log(severity,msg,immediate=false) len = [@service_length + severity.length + msg.length + 3].pack(Ci) fullmsg = "#{len}#{len}:#{@service}:#{severity}:#{msg}" if immediate send_data fullmsg elsif @connected send_data fullmsg else @msg_queue << fullmsg end #if @connected #send_data "#{len}#{len}:#{@service}:#{severity}:#{msg}" #else # @msg_queue << fullmsg # false #end rescue Exception => e puts e @msg_queue << fullmsg if msg and severity false end
service()
click to toggle source
# File lib/swiftcore/Analogger/EMClient.rb, line 47 def service @service end
service=(val)
click to toggle source
# File lib/swiftcore/Analogger/EMClient.rb, line 51 def service=(val) @service = val @service_length = val.length end
unbind()
click to toggle source
# File lib/swiftcore/Analogger/EMClient.rb, line 64 def unbind @connected = false #@sender.cancel ::EventMachine.add_timer(rand(2)) {self.class.connect(@service, @host, @port, @key)} end