|
VLink 2.0.0
A high-performance communication middleware
|
Zero-copy, schema-aware 3-D point cloud container for VLink transport. 更多...
#include <cstdint>#include <iostream>#include <string>#include <string_view>#include <unordered_map>#include <vector>#include "../base/bytes.h"#include "./header.h"命名空间 | |
| namespace | vlink |
| namespace | vlink::zerocopy |
Zero-copy, schema-aware 3-D point cloud container for VLink transport.
PointCloud stores an array of fixed-size point records together with a compact compile-time schema that describes the name, type, and byte size of every field per point. The schema is encoded into two uint64_t values (size_num and type_num) where each nibble (4 bits) encodes one field, and a comma-separated name string (up to 160 chars, 3-16 fields).
| Enum | C++ type | Size |
|---|---|---|
| kBoolType | bool | 1 |
| kInt8Type | int8_t | 1 |
| kUint8Type | uint8_t | 1 |
| kInt16Type | int16_t | 2 |
| kUint16Type | uint16_t | 2 |
| kInt32Type | int32_t | 4 |
| kUint32Type | uint32_t | 4 |
| kInt64Type | int64_t | 8 |
| kUint64Type | uint64_t | 8 |
| kFloatType | float | 4 |
| kDoubleType | double | 8 |
operator<<, the data pointer references memory inside the source Bytes. The Bytes must outlive the PointCloud.create<T...>() requires 3-16 type parameters, all of which must be fundamental types.set_value() requires resize() to have been called first so that the internal write-cursor is positioned correctly.static_assert).