CARLA
 
载入中...
搜索中...
未找到
Public 成员函数 | Private 成员函数 | Private 属性 | 所有成员列表
carla::multigpu::Router类 参考

#include <router.h>

+ 类 carla::multigpu::Router 继承关系图:
+ carla::multigpu::Router 的协作图:

Public 成员函数

void AsyncRun (size_t worker_threads)
 
PrimaryCommandsGetCommander ()
 
boost::asio::ip::tcp::endpoint GetLocalEndpoint () const
 
std::weak_ptr< PrimaryGetNextServer ()
 
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< SessionInfoWriteToNext (MultiGPUCommand id, Buffer &&buffer)
 
std::future< SessionInfoWriteToOne (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
 

详细描述

在文件 router.h35 行定义.

构造及析构函数说明

◆ Router() [1/2]

carla::multigpu::Router::Router ( void )

在文件 router.cpp15 行定义.

◆ Router() [2/2]

carla::multigpu::Router::Router ( uint16_t port)
explicit

在文件 router.cpp29 行定义.

引用了 _endpoint, _listener, _pool , 以及 carla::ThreadPool::io_context().

+ 函数调用图:

◆ ~Router()

carla::multigpu::Router::~Router ( )

在文件 router.cpp18 行定义.

引用了 Stop().

+ 函数调用图:

成员函数说明

◆ AsyncRun()

void carla::multigpu::Router::AsyncRun ( size_t worker_threads)

在文件 router.cpp78 行定义.

引用了 _pool , 以及 carla::ThreadPool::AsyncRun().

+ 函数调用图:

◆ ClearSessions()

void carla::multigpu::Router::ClearSessions ( )
private

在文件 router.cpp106 行定义.

引用了 _mutex, _sessions , 以及 carla::log_info().

被这些函数引用 Stop().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ ConnectSession()

void carla::multigpu::Router::ConnectSession ( std::shared_ptr< Primary > session)
private

在文件 router.cpp86 行定义.

引用了 _callback, _mutex, _sessions, DEBUG_ASSERT , 以及 carla::log_info().

+ 函数调用图:

◆ DisconnectSession()

void carla::multigpu::Router::DisconnectSession ( std::shared_ptr< Primary > session)
private

在文件 router.cpp96 行定义.

引用了 _mutex, _sessions, DEBUG_ASSERT , 以及 carla::log_info().

+ 函数调用图:

◆ GetCommander()

PrimaryCommands & carla::multigpu::Router::GetCommander ( )
inline

在文件 router.h58 行定义.

引用了 _commander.

◆ GetLocalEndpoint()

boost::asio::ip::tcp::endpoint carla::multigpu::Router::GetLocalEndpoint ( ) const

在文件 router.cpp82 行定义.

引用了 _endpoint.

◆ GetNextServer()

std::weak_ptr< Primary > carla::multigpu::Router::GetNextServer ( )

在文件 router.cpp188 行定义.

引用了 _mutex, _next , 以及 _sessions.

◆ HasClientsConnected()

bool carla::multigpu::Router::HasClientsConnected ( )
inline

在文件 router.h54 行定义.

引用了 _sessions.

◆ SetCallbacks()

void carla::multigpu::Router::SetCallbacks ( )

在文件 router.cpp36 行定义.

引用了 _commander, _endpoint, _listener, _promises, carla::log_info() , 以及 carla::multigpu::PrimaryCommands::set_router().

+ 函数调用图:

◆ SetNewConnectionCallback()

void carla::multigpu::Router::SetNewConnectionCallback ( std::function< void(void)> func)

在文件 router.cpp73 行定义.

引用了 _callback.

◆ Stop()

void carla::multigpu::Router::Stop ( )

在文件 router.cpp22 行定义.

引用了 _listener, _pool, ClearSessions() , 以及 carla::ThreadPool::Stop().

被这些函数引用 ~Router().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ Write()

void carla::multigpu::Router::Write ( MultiGPUCommand id,
Buffer && buffer )

在文件 router.cpp112 行定义.

引用了 _mutex, _sessions, carla::BufferView::CreateFrom(), carla::multigpu::CommandHeader::id, carla::multigpu::Primary::MakeMessage() , 以及 carla::multigpu::CommandHeader::size.

+ 函数调用图:

◆ WriteToNext()

std::future< SessionInfo > carla::multigpu::Router::WriteToNext ( MultiGPUCommand id,
Buffer && buffer )

在文件 router.cpp132 行定义.

引用了 _mutex, _next, _promises, _sessions, carla::BufferView::CreateFrom(), carla::multigpu::CommandHeader::id, carla::multigpu::Primary::MakeMessage() , 以及 carla::multigpu::CommandHeader::size.

+ 函数调用图:

◆ WriteToOne()

std::future< SessionInfo > carla::multigpu::Router::WriteToOne ( std::weak_ptr< Primary > server,
MultiGPUCommand id,
Buffer && buffer )

在文件 router.cpp164 行定义.

引用了 _mutex, _promises, carla::BufferView::CreateFrom(), carla::multigpu::CommandHeader::id, carla::multigpu::Primary::MakeMessage() , 以及 carla::multigpu::CommandHeader::size.

+ 函数调用图:

类成员变量说明

◆ _callback

std::function<void(void)> carla::multigpu::Router::_callback
private

在文件 router.h78 行定义.

被这些函数引用 ConnectSession() , 以及 SetNewConnectionCallback().

◆ _commander

PrimaryCommands carla::multigpu::Router::_commander
private

在文件 router.h77 行定义.

被这些函数引用 GetCommander() , 以及 SetCallbacks().

◆ _endpoint

boost::asio::ip::tcp::endpoint carla::multigpu::Router::_endpoint
private

在文件 router.h72 行定义.

被这些函数引用 GetLocalEndpoint(), Router() , 以及 SetCallbacks().

◆ _listener

std::shared_ptr<Listener> carla::multigpu::Router::_listener
private

在文件 router.h74 行定义.

被这些函数引用 Router(), SetCallbacks() , 以及 Stop().

◆ _mutex

std::mutex carla::multigpu::Router::_mutex
private

在文件 router.h70 行定义.

被这些函数引用 ClearSessions(), ConnectSession(), DisconnectSession(), GetNextServer(), Write(), WriteToNext() , 以及 WriteToOne().

◆ _next

uint32_t carla::multigpu::Router::_next
private

在文件 router.h75 行定义.

被这些函数引用 GetNextServer() , 以及 WriteToNext().

◆ _pool

ThreadPool carla::multigpu::Router::_pool
private

在文件 router.h71 行定义.

被这些函数引用 AsyncRun(), Router() , 以及 Stop().

◆ _promises

std::unordered_map<Primary *, std::shared_ptr<std::promise<SessionInfo> > > carla::multigpu::Router::_promises
private

在文件 router.h76 行定义.

被这些函数引用 SetCallbacks(), WriteToNext() , 以及 WriteToOne().

◆ _sessions

std::vector<std::shared_ptr<Primary> > carla::multigpu::Router::_sessions
private

该类的文档由以下文件生成: