class Murmur::API::Server

Public Class Methods

new(host, meta, options) click to toggle source
# File lib/murmur/server.rb, line 8
def initialize(host, meta, options)
    @host = host
    @meta = meta

    if !options[:id] and !options[:interface]
        options.delete :id
        options.delete :interface

        server = @host.new_server_interface

        @interface = host.add_proxy_router(server)

        options.each do |key, value|
            setConf(key, value)
        end
    end

    @interface = @interface || options[:interface] || begin
    server = @meta.getServer(options[:id])
    raise ::Murmur::Ice::InvalidServerException if server.nil?
    host.add_proxy_router(server)
    end

    @channels = {}
    @users = {}
    @registered_users = {}
end

Public Instance Methods

[](key) click to toggle source
# File lib/murmur/server.rb, line 104
def [](key)
    key = key.to_s
    config[key]
end
[]=(key, val) click to toggle source
# File lib/murmur/server.rb, line 109
def []=(key, val)
    key - key.to_s
    @interface.setConf(key, val.to_s)
    @config = nil
end
channel(id) click to toggle source
# File lib/murmur/server.rb, line 44
def channel(id)
    channels

    @channels[id]
end
channels() click to toggle source
# File lib/murmur/server.rb, line 50
def channels
    @channels = {}
    @interface.getChannels.each do |_, channel|
        @channels[channel.id] = Channel.new(@host, @meta, self, channel)
    end
    @channels
end
config() click to toggle source
# File lib/murmur/server.rb, line 80
def config
    @config = @meta.getDefaultConf.merge(@interface.getAllConf)
end
delete()
Alias for: destroy!
destroy!() click to toggle source
# File lib/murmur/server.rb, line 84
def destroy!
    @interface.stop if running?
    @host.uncache_server id
    @interface.delete
end
Also aliased as: delete
id() click to toggle source
# File lib/murmur/server.rb, line 36
def id
    @interface.id
end
method_missing(method, *args) click to toggle source
# File lib/murmur/server.rb, line 124
def method_missing(method, *args)
    method = method.to_s
    method.gsub!(/_([a-z])/) { $1.upcase }
    ret = @interface.send method, *args
end
raw() click to toggle source
# File lib/murmur/server.rb, line 120
def raw
    @interface
end
registered_users() click to toggle source
# File lib/murmur/server.rb, line 66
def registered_users
    @registered_users = {}
    @interface.getRegisteredUsers.each do |_, user|
        @registered_users[user.session] = User.new(@host, @meta, self, user)
    end
    @registered_users
end
restart!() click to toggle source
# File lib/murmur/server.rb, line 99
def restart!
    @interface.stop if running?
    @interface.start
end
running?() click to toggle source
# File lib/murmur/server.rb, line 40
def running?
    @interface.isRunning
end
setConf(key, val) click to toggle source
# File lib/murmur/server.rb, line 115
def setConf(key, val)
    key = key.to_s
    self[key] = val
end
start!() click to toggle source
# File lib/murmur/server.rb, line 91
def start!
    @interface.start unless running?
end
stop!() click to toggle source
# File lib/murmur/server.rb, line 95
def stop!
    @interface.stop if running?
end
user(session) click to toggle source
# File lib/murmur/server.rb, line 74
def user(session)
    users

    @users[:session]
end
users() click to toggle source
# File lib/murmur/server.rb, line 58
def users
    @users = {}
    @interface.getUsers.each do |_, user|
        @users[user.session] = User.new(@host, @meta, self, user)
    end
    @users
end