class Circed::Network::NetworkState

Overview

Global network state manager for RFC 2813 compliance Maintains network-wide information about servers, users, and channels

Defined in:

circed/network/network_state.cr

Class Method Summary

Class Method Detail

def self.add_channel(name : String) #

Add channel to global network state


[View source]
def self.add_server(name : String, hopcount : Int32, description : String, link_server : LinkServer | Nil = nil, token : String | Nil = nil) #

Add server to global network state


[View source]
def self.add_server_link(server1 : String, server2 : String) #

Network topology management


[View source]
def self.add_user(nickname : String, username : String, hostname : String, realname : String, server : String, hopcount : Int32 = 0) #

Add user to global network state


[View source]
def self.channels #

[View source]
def self.clear_all_state #

Clear all state (for testing)


[View source]
def self.clear_caches #

Clear caches when needed (call periodically or when memory pressure)


[View source]
def self.get_channel(name : String) #

[View source]
def self.get_server(name : String) #

[View source]
def self.get_user(nickname : String) #

[View source]
def self.get_user_server(nickname : String) : String | Nil #

Fast server lookup using cache


[View source]
def self.join_user_to_channel(nickname : String, channel_name : String, modes : Set(Char) = Set(Char).new) #

Join user to channel


[View source]
def self.part_user_from_channel(nickname : String, channel_name : String) #

Part user from channel


[View source]
def self.remove_channel(name : String) #

Remove channel from global network state


[View source]
def self.remove_server(name : String, send_squit : Bool = true) #

Remove server and cascade to users/channels


[View source]
def self.remove_server_link(server1 : String, server2 : String) #

[View source]
def self.remove_user(nickname : String) #

Remove user from global network state - optimized


[View source]
def self.route_to_server(target_server : String, from_server : String = Server.name) : String | Nil #

Find route to server (for message routing)


[View source]
def self.server_list(mask : String | Nil = nil) #

Generate server list for LINKS command


[View source]
def self.servers #

Query methods


[View source]
def self.set_channel_topic(name : String, topic : String | Nil, set_by : String | Nil = nil) #

Set topic for a channel


[View source]
def self.set_user_away(nickname : String, message : String | Nil) #

Set away message for a user - optimized


[View source]
def self.stats #

Network statistics


[View source]
def self.topology #

[View source]
def self.users #

[View source]