Apollo  6.0
Open source self driving car software
Classes | Typedefs | Enumerations
apollo::cyber::service_discovery Namespace Reference

Classes

class  ChannelManager
 Topology Manager of Service related. More...
 
class  Edge
 
class  Graph
 
class  Manager
 Base class for management of Topology elements. Manager can Join/Leave the Topology, and Listen the topology change. More...
 
class  MultiValueWarehouse
 
class  NodeManager
 Topology Manager of Node related. More...
 
class  ParticipantListener
 
class  RoleBase
 
class  RoleServer
 
class  RoleWriter
 
class  ServiceManager
 Topology Manager of Service related. More...
 
class  SingleValueWarehouse
 
class  SubscriberListener
 
class  TopologyManager
 elements in Cyber – Node, Channel, Service, Writer, Reader, Client and Server's relationship is presented by Topology. You can Imagine that a directed graph – Node is the container of Server/Client/Writer/Reader, and they are the vertice of the graph and Channel is the Edge from Writer flow to the Reader, Service is the Edge from Server to Client. Thus we call Writer and Server Upstream, Reader and Client Downstream To generate this graph, we use TopologyManager, it has three sub managers – NodeManager: You can find Nodes in this topology ChannelManager: You can find Channels in this topology, and their Writers and Readers ServiceManager: You can find Services in this topology, and their Servers and Clients TopologyManager use fast-rtps' Participant to communicate. It can broadcast Join or Leave messages of those elements. Also, you can register you own ChangeFunc to monitor topology change More...
 
class  Vertice
 
class  WarehouseBase
 

Typedefs

using RolePtr = std::shared_ptr< RoleBase >
 
using RoleNode = RoleBase
 
using RoleNodePtr = std::shared_ptr< RoleNode >
 
using RoleWriterPtr = std::shared_ptr< RoleWriter >
 
using RoleReader = RoleWriter
 
using RoleReaderPtr = std::shared_ptr< RoleReader >
 
using RoleServerPtr = std::shared_ptr< RoleServer >
 
using RoleClient = RoleServer
 
using RoleClientPtr = std::shared_ptr< RoleClient >
 
using NodeManagerPtr = std::shared_ptr< NodeManager >
 
using ChannelManagerPtr = std::shared_ptr< ChannelManager >
 
using ServiceManagerPtr = std::shared_ptr< ServiceManager >
 

Enumerations

enum  FlowDirection { UNREACHABLE, UPSTREAM, DOWNSTREAM }
 describe the flow direction between nodes As the DAG below A-—>B--—>C<--—D GetDirectionOf(A, B) is UPSTREAM GetDirectionOf(C, A) is DOWNSTREAM GetDirectionOf(D, A) is UNREACHABLE GetDirectionOf(A, D) is UNREACHABLE More...
 

Typedef Documentation

◆ ChannelManagerPtr

◆ NodeManagerPtr

◆ RoleClient

◆ RoleClientPtr

◆ RoleNode

◆ RoleNodePtr

using apollo::cyber::service_discovery::RoleNodePtr = typedef std::shared_ptr<RoleNode>

◆ RolePtr

using apollo::cyber::service_discovery::RolePtr = typedef std::shared_ptr<RoleBase>

◆ RoleReader

◆ RoleReaderPtr

◆ RoleServerPtr

◆ RoleWriterPtr

◆ ServiceManagerPtr

Enumeration Type Documentation

◆ FlowDirection

describe the flow direction between nodes As the DAG below A-—>B--—>C<--—D GetDirectionOf(A, B) is UPSTREAM GetDirectionOf(C, A) is DOWNSTREAM GetDirectionOf(D, A) is UNREACHABLE GetDirectionOf(A, D) is UNREACHABLE

Enumerator
UNREACHABLE 
UPSTREAM 
DOWNSTREAM