#include <router.h>
Public 成员函数 | |
void | AsyncRun (size_t worker_threads) |
PrimaryCommands & | GetCommander () |
boost::asio::ip::tcp::endpoint | GetLocalEndpoint () const |
std::weak_ptr< Primary > | GetNextServer () |
bool | HasClientsConnected () |
Router (uint16_t port) | |
Router (void) | |
void | SetCallbacks () |
void | SetNewConnectionCallback (std::function< void(void)>) |
void | Stop () |
void | Write (MultiGPUCommand id, Buffer &&buffer) |
std::future< SessionInfo > | WriteToNext (MultiGPUCommand id, Buffer &&buffer) |
std::future< SessionInfo > | WriteToOne (std::weak_ptr< Primary > server, MultiGPUCommand id, Buffer &&buffer) |
~Router () | |
Private 成员函数 | |
void | ClearSessions () |
void | ConnectSession (std::shared_ptr< Primary > session) |
void | DisconnectSession (std::shared_ptr< Primary > session) |
Private 属性 | |
std::function< void(void)> | _callback |
PrimaryCommands | _commander |
boost::asio::ip::tcp::endpoint | _endpoint |
std::shared_ptr< Listener > | _listener |
std::mutex | _mutex |
uint32_t | _next |
ThreadPool | _pool |
std::unordered_map< Primary *, std::shared_ptr< std::promise< SessionInfo > > > | _promises |
std::vector< std::shared_ptr< Primary > > | _sessions |
carla::multigpu::Router::Router | ( | void | ) |
在文件 router.cpp 第 15 行定义.
|
explicit |
在文件 router.cpp 第 29 行定义.
引用了 _endpoint, _listener, _pool , 以及 carla::ThreadPool::io_context().
carla::multigpu::Router::~Router | ( | ) |
void carla::multigpu::Router::AsyncRun | ( | size_t | worker_threads | ) |
|
private |
在文件 router.cpp 第 106 行定义.
引用了 _mutex, _sessions , 以及 carla::log_info().
被这些函数引用 Stop().
|
private |
在文件 router.cpp 第 86 行定义.
引用了 _callback, _mutex, _sessions, DEBUG_ASSERT , 以及 carla::log_info().
|
private |
|
inline |
引用了 _commander.
boost::asio::ip::tcp::endpoint carla::multigpu::Router::GetLocalEndpoint | ( | ) | const |
在文件 router.cpp 第 82 行定义.
引用了 _endpoint.
std::weak_ptr< Primary > carla::multigpu::Router::GetNextServer | ( | ) |
在文件 router.cpp 第 188 行定义.
void carla::multigpu::Router::SetCallbacks | ( | ) |
在文件 router.cpp 第 36 行定义.
引用了 _commander, _endpoint, _listener, _promises, carla::log_info() , 以及 carla::multigpu::PrimaryCommands::set_router().
void carla::multigpu::Router::SetNewConnectionCallback | ( | std::function< void(void)> | func | ) |
在文件 router.cpp 第 73 行定义.
引用了 _callback.
void carla::multigpu::Router::Stop | ( | ) |
在文件 router.cpp 第 22 行定义.
引用了 _listener, _pool, ClearSessions() , 以及 carla::ThreadPool::Stop().
被这些函数引用 ~Router().
void carla::multigpu::Router::Write | ( | MultiGPUCommand | id, |
Buffer && | buffer ) |
std::future< SessionInfo > carla::multigpu::Router::WriteToNext | ( | MultiGPUCommand | id, |
Buffer && | buffer ) |
std::future< SessionInfo > carla::multigpu::Router::WriteToOne | ( | std::weak_ptr< Primary > | server, |
MultiGPUCommand | id, | ||
Buffer && | buffer ) |
|
private |
被这些函数引用 ConnectSession() , 以及 SetNewConnectionCallback().
|
private |
被这些函数引用 GetCommander() , 以及 SetCallbacks().
|
private |
被这些函数引用 GetLocalEndpoint(), Router() , 以及 SetCallbacks().
|
private |
被这些函数引用 Router(), SetCallbacks() , 以及 Stop().
|
private |
被这些函数引用 ClearSessions(), ConnectSession(), DisconnectSession(), GetNextServer(), Write(), WriteToNext() , 以及 WriteToOne().
|
private |
被这些函数引用 GetNextServer() , 以及 WriteToNext().
|
private |
被这些函数引用 AsyncRun(), Router() , 以及 Stop().
|
private |
被这些函数引用 SetCallbacks(), WriteToNext() , 以及 WriteToOne().
|
private |