class Circed::Repositories::ServerRepository

Included Modules

Defined in:

circed/repositories/server_repository.cr

Instance Method Summary

Instance methods inherited from module Circed::Core::Repository(Circed::Domain::Server)

add(id : String, entity : T) : Void add, all : Array(T) all, clear : Void clear, get(id : String) : T | Nil get, remove(id : String) : Bool remove, size : Int32 size

Instance Method Detail

def add(name : String, server : Domain::Server) : Void #

[View source]
def add_link(server1 : String, server2 : String) : Void #

Topology management


[View source]
def add_user_to_server(server_name : String, nickname : String) : Bool #

[View source]
def all : Array(Domain::Server) #

[View source]
def are_connected?(server1 : String, server2 : String) : Bool #

[View source]
def clear : Void #

[View source]
def find_local_servers : Array(Domain::Server) #

Query methods


[View source]
def find_remote_servers : Array(Domain::Server) #

[View source]
def find_route_to_server(target : String, from : String = "localhost") : String | Nil #

Network topology analysis


[View source]
def find_server_for_user(nickname : String) : Domain::Server | Nil #

[View source]
def find_servers_behind(split_server : String, from : String = "localhost") : Array(String) #

[View source]
def find_servers_by_pattern(pattern : String) : Array(Domain::Server) #

[View source]
def get(name : String) : Domain::Server | Nil #

[View source]
def get_connections(server_name : String) : Set(String) #

[View source]
def get_ping_time(server_name : String) : Time | Nil #

[View source]
def get_server_by_token(token : String) : Domain::Server | Nil #

[View source]
def link_servers : Array(LinkServer) #

[View source]
def network_statistics : Hash(Symbol, Int32) #

Network statistics


[View source]
def register_server(name : String, description : String, hopcount : Int32, token : String | Nil = nil, link_server : LinkServer | Nil = nil) : Domain::Server #

Server management


[View source]
def remove(name : String) : Bool #

[View source]
def remove_link(server1 : String, server2 : String) : Void #

[View source]
def remove_user_from_server(server_name : String, nickname : String) : Bool #

[View source]
def server_list(mask : String = "*") : Array(Domain::Server) #

[View source]
def size : Int32 #

[View source]
def topology_map : Hash(String, Array(String)) #

Topology visualization (for debugging)


[View source]
def update_ping_time(server_name : String, ping_time : Time) : Bool #

Server health monitoring


[View source]