CARLA
 
载入中...
搜索中...
未找到
StreamStateBase.h
浏览该文件的文档.
1// Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma
2// de Barcelona (UAB).
3//
4// This work is licensed under the terms of the MIT license.
5// For a copy, see <https://opensource.org/licenses/MIT>.
6
7#pragma once
8/**
9 * @file
10 * @brief 包含StreamStateBase类的定义,它是流状态的基础类。
11 */
12#include "carla/NonCopyable.h"
15
16#include <memory>
17
18namespace carla {
19 /**
20 * @class BufferPool
21 * @brief 缓冲区池的类声明(前向声明),用于在StreamStateBase中管理缓冲区。
22 */
23 class BufferPool;
24
25namespace streaming {
26namespace detail {
27
28 /**
29 * @class StreamStateBase
30 * @brief 所有流副本之间的共享状态类。如果处于活动状态,则提供对底层服务器会话的访问。
31 *
32 * 该类继承自NonCopyable,以防止对象被复制。
33 */
34 class StreamStateBase : private NonCopyable {
35 public:
36 /**
37 * @brief 构造函数,使用给定的令牌初始化对象。
38 *
39 * @param token 用于初始化对象的令牌。
40 */
41 explicit StreamStateBase(const token_type &token);
42 /**
43 * @brief 析构函数,清理资源。
44 */
46 /**
47 * @brief 获取用于初始化对象的令牌。
48 *
49 * @return 返回用于初始化对象的令牌。
50 */
51 const token_type &token() const {
52 return _token;
53 }
54 /**
55 * @brief 创建一个缓冲区。
56 *
57 * @return 返回一个新创建的缓冲区。
58 */
60 /**
61 * @brief 连接到会话。
62 *
63 * 这是一个纯虚函数,需要在派生类中实现。
64 *
65 * @param session 要连接的会话的共享指针。
66 */
67 virtual void ConnectSession(std::shared_ptr<Session> session) = 0;
68 /**
69 * @brief 断开与会话的连接。
70 *
71 * 这是一个纯虚函数,需要在派生类中实现。
72 *
73 * @param session 要断开的会话的共享指针。
74 */
75 virtual void DisconnectSession(std::shared_ptr<Session> session) = 0;
76 /**
77 * @brief 清除所有会话。
78 *
79 * 这是一个纯虚函数,需要在派生类中实现。
80 */
81 virtual void ClearSessions() = 0;
82
83 private:
84 /**
85 * @brief 用于初始化对象的令牌。
86 */
88 /**
89 * @brief 指向缓冲区池的共享指针,用于管理缓冲区。
90 */
91 const std::shared_ptr<BufferPool> _buffer_pool;
92 };
93
94} // namespace detail
95} // namespace streaming
96} // namespace carla
一块原始数据。 请注意,如果需要更多容量,则会分配一个新的内存块,并 删除旧的内存块。这意味着默认情况下,缓冲区只能增长。要释放内存,使用 clear 或 pop。
这个类用于禁止拷贝和移动构造函数及赋值操作
所有流副本之间的共享状态类。如果处于活动状态,则提供对底层服务器会话的访问。
StreamStateBase(const token_type &token)
构造函数,使用给定的令牌初始化对象。
virtual void DisconnectSession(std::shared_ptr< Session > session)=0
断开与会话的连接。
virtual ~StreamStateBase()
析构函数,清理资源。
virtual void ClearSessions()=0
清除所有会话。
const token_type _token
用于初始化对象的令牌。
virtual void ConnectSession(std::shared_ptr< Session > session)=0
连接到会话。
const token_type & token() const
获取用于初始化对象的令牌。
const std::shared_ptr< BufferPool > _buffer_pool
指向缓冲区池的共享指针,用于管理缓冲区。
Buffer MakeBuffer()
创建一个缓冲区。
静态断言,用于确保token_data结构体的大小与Token::data的大小相同。
包含CARLA流处理相关头文件和Boost.Asio网络库头文件。 包含CARLA的调试功能相关定义。 包含CARLA流处理的端点(EndPoint)类定义。 包含CARLA流处理的令牌(Token)类...
CARLA模拟器的主命名空间。
Definition Carla.cpp:139