Skip to content

class flake::Router

#include </Users/ios_developer/workspace/coldwave-os/build/_deps/flake-src/routing/Router.h>

Inherits from flake::ServerConnectionSink, flake::ResponseSink

Public Functions

Name
Router()
voidsetAuthenticationSink(AuthenticationSink * a)
ThreadQueue< Message * > &inQueue()
ServerConnection *addClient(Wire * w)
voidaddClient(ServerConnection * c)
voidindicate(uint8_t messageType, addr_t source, addr_t destination, PropArray * data =nullptr, ResponseSink * sink =nullptr, Message * req =nullptr, PropArray * pendingData =nullptr, addr_t exclude_addr =0)
voidindicateDisconnected(uint8_t messageType, Transport * t, PropArray * data =nullptr, ResponseSink * sink =nullptr, Message * req =nullptr, PropArray * pendingData =nullptr, void * assoc_data =nullptr)
virtual int8_tonResponse(const uint8_t messageType, int8_t result, addr_t src, addr_t dst, const PropArray & params, const Token t, Transport * transport, addr_t pendingSender, void * assoc_data) override
boolregisterObject(addr_t id, addr_t parentId, addr_t broadcastId, PropArray & va, Transport * c, bool requires_auth)
voidunregisterObject(addr_t id)
addr_tgroup(addr_t objectId, addr_t groupId)
voidungroup(addr_t objectId, addr_t groupId)
voidprocess()
voiddoHousekeeping()
voidcheckConnections()
voidcleanupResponseMap()
voidshutdown()
boolfinishedShutdown()
boolisRunning()
voidrun()
voiddisconnect(ServerConnection * c)
virtual voidonDisconnect(ServerConnection * c) override
deque< ServerConnection * > &connections()
voidlockConnections()
voidunlockConnections()

Public Attributes

Name
vector< flakeThreadId_t >m_transportThreads
ThreadQueue< Message * >m_dgramInQueue
ThreadQueue< Message * >m_dgramOutQueue

Public Functions Documentation

function Router

cpp
Router()

function setAuthenticationSink

cpp
void setAuthenticationSink(
    AuthenticationSink * a
)

function inQueue

cpp
inline ThreadQueue< Message * > & inQueue()

function addClient

cpp
ServerConnection * addClient(
    Wire * w
)

function addClient

cpp
void addClient(
    ServerConnection * c
)

function indicate

cpp
void indicate(
    uint8_t messageType,
    addr_t source,
    addr_t destination,
    PropArray * data =nullptr,
    ResponseSink * sink =nullptr,
    Message * req =nullptr,
    PropArray * pendingData =nullptr,
    addr_t exclude_addr =0
)

function indicateDisconnected

cpp
void indicateDisconnected(
    uint8_t messageType,
    Transport * t,
    PropArray * data =nullptr,
    ResponseSink * sink =nullptr,
    Message * req =nullptr,
    PropArray * pendingData =nullptr,
    void * assoc_data =nullptr
)

function onResponse

cpp
virtual int8_t onResponse(
    const uint8_t messageType,
    int8_t result,
    addr_t src,
    addr_t dst,
    const PropArray & params,
    const Token t,
    Transport * transport,
    addr_t pendingSender,
    void * assoc_data
) override

Reimplements: flake::ResponseSink::onResponse

function registerObject

cpp
bool registerObject(
    addr_t id,
    addr_t parentId,
    addr_t broadcastId,
    PropArray & va,
    Transport * c,
    bool requires_auth
)

function unregisterObject

cpp
void unregisterObject(
    addr_t id
)

function group

cpp
addr_t group(
    addr_t objectId,
    addr_t groupId
)

function ungroup

cpp
void ungroup(
    addr_t objectId,
    addr_t groupId
)

function process

cpp
void process()

function doHousekeeping

cpp
inline void doHousekeeping()

function checkConnections

cpp
void checkConnections()

function cleanupResponseMap

cpp
void cleanupResponseMap()

function shutdown

cpp
inline void shutdown()

function finishedShutdown

cpp
inline bool finishedShutdown()

function isRunning

cpp
inline bool isRunning()

function run

cpp
inline void run()

function disconnect

cpp
void disconnect(
    ServerConnection * c
)

'ref @ Router.cpp:742

function onDisconnect

cpp
inline virtual void onDisconnect(
    ServerConnection * c
) override

Reimplements: flake::ServerConnectionSink::onDisconnect

function connections

cpp
inline deque< ServerConnection * > & connections()

function lockConnections

cpp
inline void lockConnections()

function unlockConnections

cpp
inline void unlockConnections()

Public Attributes Documentation

variable m_transportThreads

cpp
vector<flakeThreadId_t> flake::Router::m_transportThreads

variable m_dgramInQueue

cpp
ThreadQueue<Message*> flake::Router::m_dgramInQueue

variable m_dgramOutQueue

cpp
ThreadQueue<Message*> flake::Router::m_dgramOutQueue