Apollo 10.0
自动驾驶开放平台
apollo::cyber::service_discovery::ServiceManager类 参考

Topology Manager of Service related 更多...

#include <service_manager.h>

类 apollo::cyber::service_discovery::ServiceManager 继承关系图:
apollo::cyber::service_discovery::ServiceManager 的协作图:

Public 类型

using RoleAttrVec = std::vector< RoleAttributes >
 
using ServerWarehouse = SingleValueWarehouse
 
using ClientWarehouse = MultiValueWarehouse
 
- Public 类型 继承自 apollo::cyber::service_discovery::Manager
using ChangeSignal = base::Signal< const ChangeMsg & >
 
using ChangeFunc = std::function< void(const ChangeMsg &)>
 
using ChangeConnection = base::Connection< const ChangeMsg & >
 
using ParticipantPtr = std::shared_ptr< transport::Participant >
 
using PublisherPtr = std::shared_ptr< transport::Publisher >
 
using SubscriberPtr = std::shared_ptr< transport::Subscriber >
 

Public 成员函数

 ServiceManager ()
 Construct a new Service Manager object
 
virtual ~ServiceManager ()
 Destroy the Service Manager object
 
bool HasService (const std::string &service_name)
 Inquire whether service_name exists in topology
 
void GetServers (RoleAttrVec *servers)
 Get the All Server in the topology
 
void GetClients (const std::string &service_name, RoleAttrVec *clients)
 Get the Clients object that subscribes service_name
 
- Public 成员函数 继承自 apollo::cyber::service_discovery::Manager
 Manager ()
 Construct a new Manager object
 
virtual ~Manager ()
 Destroy the Manager object
 
bool StartDiscovery (const ParticipantPtr &participant)
 Startup topology discovery
 
void StopDiscovery ()
 Stop topology discovery
 
virtual void Shutdown ()
 Shutdown module
 
bool Join (const RoleAttributes &attr, RoleType role, bool need_publish=true)
 Join the topology
 
bool Leave (const RoleAttributes &attr, RoleType role)
 Leave the topology
 
ChangeConnection AddChangeListener (const ChangeFunc &func)
 Add topology change listener, when topology changed, func will be called.
 
void RemoveChangeListener (const ChangeConnection &conn)
 Remove our listener for topology change.
 

友元

class TopologyManager
 

额外继承的成员函数

- Protected 成员函数 继承自 apollo::cyber::service_discovery::Manager
bool CreatePublisher (const ParticipantPtr &participant)
 
bool CreateSubscriber (const ParticipantPtr &participant)
 
virtual bool NeedPublish (const ChangeMsg &msg) const
 
void Convert (const RoleAttributes &attr, RoleType role, OperateType opt, ChangeMsg *msg)
 
void Notify (const ChangeMsg &msg)
 
bool Publish (const ChangeMsg &msg)
 
void OnRemoteChange (const std::shared_ptr< std::string > &msg_str)
 
bool IsFromSameProcess (const ChangeMsg &msg)
 
- Protected 属性 继承自 apollo::cyber::service_discovery::Manager
std::atomic< bool > is_shutdown_
 
std::atomic< bool > is_discovery_started_
 
int allowed_role_
 
ChangeType change_type_
 
std::string host_name_
 
int process_id_
 
std::string channel_name_
 
PublisherPtr publisher_
 
SubscriberPtr subscriber_
 
ParticipantPtr participant_
 
std::mutex lock_
 
ChangeSignal signal_
 

详细描述

Topology Manager of Service related

在文件 service_manager.h39 行定义.

成员类型定义说明

◆ ClientWarehouse

◆ RoleAttrVec

◆ ServerWarehouse

构造及析构函数说明

◆ ServiceManager()

apollo::cyber::service_discovery::ServiceManager::ServiceManager ( )

Construct a new Service Manager object

在文件 service_manager.cc25 行定义.

25 {
26 allowed_role_ |= 1 << RoleType::ROLE_SERVER;
27 allowed_role_ |= 1 << RoleType::ROLE_CLIENT;
28 change_type_ = ChangeType::CHANGE_SERVICE;
29 channel_name_ = "service_change_broadcast";
30}

◆ ~ServiceManager()

apollo::cyber::service_discovery::ServiceManager::~ServiceManager ( )
virtual

Destroy the Service Manager object

在文件 service_manager.cc32 行定义.

32{}

成员函数说明

◆ GetClients()

void apollo::cyber::service_discovery::ServiceManager::GetClients ( const std::string &  service_name,
RoleAttrVec clients 
)

Get the Clients object that subscribes service_name

参数
service_nameName of service you want to get
clientsresult vector

在文件 service_manager.cc44 行定义.

45 {
46 RETURN_IF_NULL(clients);
47 uint64_t key = common::Hash(service_name);
48 clients_.Search(key, clients);
49}
#define RETURN_IF_NULL(ptr)
Definition log.h:90
std::size_t Hash(const std::string &key)
Definition util.h:27

◆ GetServers()

void apollo::cyber::service_discovery::ServiceManager::GetServers ( RoleAttrVec servers)

Get the All Server in the topology

参数
serversresult RoleAttr vector

在文件 service_manager.cc39 行定义.

39 {
40 RETURN_IF_NULL(servers);
41 servers_.GetAllRoles(servers);
42}
void GetAllRoles(std::vector< RolePtr > *roles) override

◆ HasService()

bool apollo::cyber::service_discovery::ServiceManager::HasService ( const std::string &  service_name)

Inquire whether service_name exists in topology

参数
service_namethe name we inquire
返回
true if service exists
false if service not exists

在文件 service_manager.cc34 行定义.

34 {
35 uint64_t key = common::Hash(service_name);
36 return servers_.Search(key);
37}

友元及相关函数文档

◆ TopologyManager

friend class TopologyManager
friend

在文件 service_manager.h40 行定义.


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