Logo
中文版
详情联系: neusar-support@reachauto.com
载入中...
搜索中...
未找到
asf::msgbus 命名空间参考

命名空间

namespace  details
 
namespace  serialize_type
 

class  Array
 数组模板类。 更多...
 
class  AtomicCounter
 
class  Buffer
 Buffer 代表一块内存。 更多...
 
class  BufferedInputStream
 
class  BufferedOutputStream
 
class  BufferedStreamCommon
 
class  Buffers
 
class  CacheFusionSynchronizer
 缓存&融合同步 实现类。 更多...
 
class  Channel
 
class  ChannelConfig
 描述一个通道的配置,对应配置文件中的内容。 更多...
 
class  ChannelListener
 
class  ChannelListenerImpl
 
class  ChannelManager
 
class  Client
 Method Client 类。 更多...
 
class  ClientBase
 
struct  ClockAgentConfig
 
class  Configration
 
struct  DeadlineMissedStatus
 Deadline 错误报告状态 更多...
 
class  DeadlineQosPolicy
 Deadline QoS 策略描述类。 更多...
 
struct  DummyMessageType
 
class  EmptyItemCounter
 
class  Executor
 消息总线专用线程池 Executor 类。 更多...
 
class  Handle
 
class  HistoryQosPolicy
 History Qos 策略描述类。 更多...
 
class  ItemCounter
 
class  MessageBase
 
class  MessageInfo
 消息附加信息。 更多...
 
class  Node
 Node 类。 更多...
 
class  NodeChannelImpl
 
class  NodeServiceImpl
 
class  PodMessage
 POD 类型消息模板类。 更多...
 
class  Reader
 Topic Reader 类。 更多...
 
class  ReaderBase
 
struct  ReaderInfo
 
class  ReaderProxy
 
class  ReaderQos
 Reader 的 QoS 策略描述。 更多...
 
class  ReliabilityQosPolicy
 Reliability Qos 策略描述类。 更多...
 
struct  RxStat
 
class  ScopedUnlocker
 
class  ScopeGuard
 
class  Server
 Method Server 类。 更多...
 
class  ServerBase
 
struct  Stat
 
class  SynchronizerOption
 CacheFusionSynchronizer 的选项信息。 更多...
 
class  SynchronizerReader
 CacheFusionSynchronizer 专用 Reader 实体类。 更多...
 
class  SynchronizerReaderBase
 CacheFusionSynchronizer 专用 Reader 基类。 更多...
 
class  Timer
 定时器类。 更多...
 
class  Transceiver
 
class  Transmitter
 
class  Transport
 
struct  TxStat
 
class  UserMessage
 
class  Writer
 Topic Writer 类。 更多...
 
class  WriterQos
 Writer 的 QoS 策略定义。 更多...
 

类型定义

using ChannelConfigs = std::vector< ChannelConfig >
 通道配置数组(Vector) 更多...
 
using DummyMessage = PodMessage< DummyMessageType >
 
using BufferVector = std::vector< Buffer >
 
using ByteArray = Array< uint8_t >
 字节数组,本质上是一个 Array<uint8_t>。 更多...
 
using Clock = neusar::clock::OffsetClock<>
 VMB 整体默认使用的时钟。 更多...
 
using Duration = Clock::duration
 VMB 整体默认使用的 duration 类型。 更多...
 
using TimePoint = Clock::time_point
 VMB 整体默认使用的 time_point 类型。 更多...
 
using Task = std::function< void()>
 

枚举

enum  SendType : int {
  RES = 0 , REQ = 1 , EVENT = 2 , E2E_STATUS_NONEWDATA = 3 ,
  E2E_STATUS_ERROR = 4 , E2E_STATUS_REPEATED = 5 , E2E_STATUS_OKSOMELOST = 6 , E2E_STATUS_WRONGSEQUENCE = 7 ,
  PICC_DAEMON_ALIVE = 8 , PICC_DAEMON_DEAD = 9 , UNKNOW = 255
}
 
enum class  SynchronizerType : uint32_t { EXACT_TIME = 0 , FIXED_ALIGNMENT = 1 , ADAPTIVE_APPROXIMATE = 2 }
 CacheFusionSynchronizer 的具体类型定义 更多...
 
enum class  SynchronizerError : uint32_t { MSG_NO_TIMESTAMP_ERROR = 0 , MSG_ALIGN_ERROR = 1 , MSG_TIMEOUT_ERROR = 2 }
 CacheFusionSynchronizer 报告的错误类型定义。 更多...
 
enum class  ReliabilityQosPolicyKind { kBestEffortReliabilityQos = 0 , kE2EReliabilityQos = 1 }
 Reliability QoS 策略类型。 更多...
 
enum class  HistoryQosPolicyKind { kKeepLast = 0 }
 消息历史策略。 更多...
 
enum class  Result : uint16_t {
  kOk = 0 , kInvalidParameter = 1 , kInvalidState = 2 , kOutOfMemory = 3 ,
  kOutOfRange = 4 , kTimeout = 5 , kTryAgain = 6 , kNotExisted = 7 ,
  kConfigError = 8 , kTimerOut = 9 , kExisted = 10 , kSyscallError = 11 ,
  kSerializeError = 12 , kDeserializeError = 13 , kNoRecipient = 14 , kFutureError = 15 ,
  kNotSupport = 16 , kPICCDaemonDead = 17 , kUnknown = 255
}
 VMB 错误码定义。 更多...
 

函数

Result Init (const std::string &config_filename="", const std::string &overlay_config_dirname="")
 VMB 整体初始化。 更多...
 
void Shutdown ()
 VMB 整体反初始化。 更多...
 
ExecutorGetDefaultExecutor ()
 获取 VMB 内部默认的 Executor 对象。 更多...
 
void GetVersion (int &major, int &minor, int &patch)
 获取 VMB 的构造版本号。 更多...
 
template<typename MSG >
auto CreateSynchronizerReader (const std::string &key, std::shared_ptr< Node > node, const typename Reader< MSG >::Options *options=nullptr) -> std::shared_ptr< SynchronizerReader< MSG > >
 创建一个用于 CacheFusionSynchronizer 具体专用的 Topic Reader。 更多...
 
template<class T >
void swap (Array< T > &lhs, Array< T > &rhs)
 
template<typename FN >
ScopeGuard< typename std::decay< FN >::type > MakeScopeGuard (FN &&fn)
 

变量

const ReaderQos READER_QOS_DEFAULT {}
 
const WriterQos WRITER_QOS_DEFAULT {}
 

类型定义说明

◆ BufferVector

using asf::msgbus::BufferVector = typedef std::vector<Buffer>

◆ ByteArray

using asf::msgbus::ByteArray = typedef Array<uint8_t>

字节数组,本质上是一个 Array<uint8_t>。

◆ ChannelConfigs

using asf::msgbus::ChannelConfigs = typedef std::vector<ChannelConfig>

通道配置数组(Vector)

◆ Clock

using asf::msgbus::Clock = typedef neusar::clock::OffsetClock<>

VMB 整体默认使用的时钟。

◆ DummyMessage

◆ Duration

using asf::msgbus::Duration = typedef Clock::duration

VMB 整体默认使用的 duration 类型。

◆ Task

using asf::msgbus::Task = typedef std::function<void()>

◆ TimePoint

using asf::msgbus::TimePoint = typedef Clock::time_point

VMB 整体默认使用的 time_point 类型。

枚举类型说明

◆ HistoryQosPolicyKind

消息历史策略。

枚举值
kKeepLast 

保留所有策略,注意:由于受限于系统资源,不可能保留无限个消息。

◆ ReliabilityQosPolicyKind

Reliability QoS 策略类型。

枚举值
kBestEffortReliabilityQos 

Best Effort 策略。

kE2EReliabilityQos 

E2E Reliability 策略。

◆ Result

enum class asf::msgbus::Result : uint16_t
strong

VMB 错误码定义。

枚举值
kOk 

成功,没有错误。

kInvalidParameter 

无效参数。

kInvalidState 

无效状态。

kOutOfMemory 

内存不足。

kOutOfRange 

超出范围。

kTimeout 

超时。

kTryAgain 

操作暂时无法完成,需要重试。

kNotExisted 

对象不存在。

kConfigError 

配置信息错误。

kTimerOut 

超时。

kExisted 

对象已经存在。

kSyscallError 

系统接口错误。

kSerializeError 

序列化失败。

kDeserializeError 

反序列化失败。

kNoRecipient 

没有对端通信方。

kFutureError 

Promise/Future 错误。

kNotSupport 

不支持。

kPICCDaemonDead 
kUnknown 

未知错误。

◆ SendType

枚举值
RES 
REQ 
EVENT 
E2E_STATUS_NONEWDATA 
E2E_STATUS_ERROR 
E2E_STATUS_REPEATED 
E2E_STATUS_OKSOMELOST 
E2E_STATUS_WRONGSEQUENCE 
PICC_DAEMON_ALIVE 
PICC_DAEMON_DEAD 
UNKNOW 

◆ SynchronizerError

enum class asf::msgbus::SynchronizerError : uint32_t
strong

CacheFusionSynchronizer 报告的错误类型定义。

自从
v4.2.1
枚举值
MSG_NO_TIMESTAMP_ERROR 

收到的消息,没有时间戳

MSG_ALIGN_ERROR 

消息对齐失败

MSG_TIMEOUT_ERROR 

接收消息超时

◆ SynchronizerType

enum class asf::msgbus::SynchronizerType : uint32_t
strong

CacheFusionSynchronizer 的具体类型定义

自从
v4.2.1
枚举值
EXACT_TIME 

精确时间对齐。

FIXED_ALIGNMENT 

基于基准对齐。

ADAPTIVE_APPROXIMATE 

近似时间自适应对齐。

函数说明

◆ CreateSynchronizerReader()

template<typename MSG >
auto asf::msgbus::CreateSynchronizerReader ( const std::string &  key,
std::shared_ptr< Node node,
const typename Reader< MSG >::Options *  options = nullptr 
) -> std::shared_ptr<SynchronizerReader<MSG>>

创建一个用于 CacheFusionSynchronizer 具体专用的 Topic Reader。

Reader 只需要创建,并按顺序传递到 CacheFusionSynchronizer 即可。

模板参数
MSG读取的消息详细类型
参数
key标识符,需要传入 Topic 名称
node所用的 Node 对象指针
options基础 Reader<MSG> 所需的选项
返回
成功返回具体专用 Reader 指针,失败返回 nullptr。
自从
v4.2.1

◆ GetDefaultExecutor()

Executor & asf::msgbus::GetDefaultExecutor ( )

获取 VMB 内部默认的 Executor 对象。

默认的 Executor 对象线程池大小为 1。

返回
返回默认的 Executor 对象引用。

◆ GetVersion()

void asf::msgbus::GetVersion ( int &  major,
int &  minor,
int &  patch 
)

获取 VMB 的构造版本号。

参数
major接收主版本号。
minor接收子版本号。
patch接收 PATCH 版本号。

◆ Init()

Result asf::msgbus::Init ( const std::string &  config_filename = "",
const std::string &  overlay_config_dirname = "" 
)

VMB 整体初始化。

整体的初始化,每个进程只能调用一次,调用多次的行为是未定义的。

参数
config_filename指定配置文件路径,默认为 "etc/MsgBus.sjon"。
overlay_config_dirname指定附加配置文件目录,默认为 "etc/msgbus.d/“,Init 会遍历这个目录中 的所有 json 配置文件并加载。
返回
初始化成功返回 Result::kOk,其它值代表初妈化失败。

◆ MakeScopeGuard()

template<typename FN >
ScopeGuard< typename std::decay< FN >::type > asf::msgbus::MakeScopeGuard ( FN &&  fn)

◆ Shutdown()

void asf::msgbus::Shutdown ( )

VMB 整体反初始化。

这个接口只能在成功调用 Init 之后调用,其它场景下调用行为是未定义的。

◆ swap()

template<class T >
void asf::msgbus::swap ( Array< T > &  lhs,
Array< T > &  rhs 
)

变量说明

◆ READER_QOS_DEFAULT

const ReaderQos asf::msgbus::READER_QOS_DEFAULT {}

◆ WRITER_QOS_DEFAULT

const WriterQos asf::msgbus::WRITER_QOS_DEFAULT {}