class MyStuff::Fb303::Server
Attributes
logger[W]
logger[W]
Public Class Methods
logger()
click to toggle source
# File lib/my_stuff/fb303/server.rb, line 82 def logger return @logger if @logger begin @logger = MyStuff::Logger.new rescue NameError require 'logger' @logger = ::Logger.new(STDOUT) end end
new(interface, name, version = '')
click to toggle source
# File lib/my_stuff/fb303/server.rb, line 9 def initialize interface, name, version = '' @name = name @version = version @interface = interface @status = Fb_status::STARTING @status_details = '' @started_at = Time.new.to_i @counters = Hash.new(0) logger.info 'Starting fb303 service...' start_fb303_server logger.info 'fb303 service running.' logger.info 'Loading handler...' handler logger.info 'Handler loaded.' end
Public Instance Methods
aliveSince()
click to toggle source
# File lib/my_stuff/fb303/server.rb, line 39 def aliveSince; @started_at; end
getCounter(key;)
click to toggle source
# File lib/my_stuff/fb303/server.rb, line 41 def getCounter key; @counters[key]; end
getCounters()
click to toggle source
# File lib/my_stuff/fb303/server.rb, line 40 def getCounters; @counters; end
getCpuProfile(duration;)
click to toggle source
# File lib/my_stuff/fb303/server.rb, line 44 def getCpuProfile duration; ''; end
getName()
click to toggle source
fb303 implementation #####
# File lib/my_stuff/fb303/server.rb, line 35 def getName; @name; end
getOption(key;)
click to toggle source
# File lib/my_stuff/fb303/server.rb, line 42 def getOption key; ''; end
getOptions()
click to toggle source
# File lib/my_stuff/fb303/server.rb, line 43 def getOptions; {}; end
getStatus()
click to toggle source
# File lib/my_stuff/fb303/server.rb, line 37 def getStatus; @status; end
getStatusDetails()
click to toggle source
# File lib/my_stuff/fb303/server.rb, line 38 def getStatusDetails; @status_details; end
getVersion()
click to toggle source
# File lib/my_stuff/fb303/server.rb, line 36 def getVersion; @version; end
handler()
click to toggle source
# File lib/my_stuff/fb303/server.rb, line 71 def handler self end
increment_counter(name)
click to toggle source
# File lib/my_stuff/fb303/server.rb, line 55 def increment_counter name @counters[name] += 1 end
logger()
click to toggle source
# File lib/my_stuff/fb303/server.rb, line 76 def logger @logger || self.class.logger end
method_missing(*args)
click to toggle source
Calls superclass method
# File lib/my_stuff/fb303/server.rb, line 59 def method_missing *args unless self.getStatus == Fb_status::ALIVE raise 'Handler unavailable in current status.' end if self.handler != self self.handler.send *args else super *args end end
reinitialize()
click to toggle source
# File lib/my_stuff/fb303/server.rb, line 46 def reinitialize; raise NotImplementedError.new; end
run!()
click to toggle source
# File lib/my_stuff/fb303/server.rb, line 27 def run! @status = Fb_status::ALIVE logger.info 'Alive, waiting on server thread.' @server_thread.join end
setOption(key, value;)
click to toggle source
# File lib/my_stuff/fb303/server.rb, line 45 def setOption key, value; end
shutdown()
click to toggle source
# File lib/my_stuff/fb303/server.rb, line 48 def shutdown @status = Fb_status::STOPPING @status_details = 'Shutdown requested via fb303' @fb303_thread.kill if @fb303_thread @status = Fb_status::STOPPED end
Protected Instance Methods
server_for(processor)
click to toggle source
# File lib/my_stuff/fb303/server.rb, line 95 def server_for processor raise NotImplementedError.new end
start_fb303_server()
click to toggle source
# File lib/my_stuff/fb303/server.rb, line 99 def start_fb303_server handler = MyStuff::Fb303::ProxyHandler.new(self) processor = @interface.const_get(:Processor).new(handler) @server = server_for(processor) @server_thread = Thread.new do @server.serve end end