Buffer.cpp
Go to the documentation of this file.
2 
3 namespace dai {
4 
5 std::shared_ptr<dai::RawBuffer> Buffer::serialize() const {
6  return raw;
7 }
8 
9 Buffer::Buffer() : ADatatype(std::make_shared<dai::RawBuffer>()) {}
10 Buffer::Buffer(std::shared_ptr<dai::RawBuffer> ptr) : ADatatype(std::move(ptr)) {}
11 
12 // helpers
13 std::vector<std::uint8_t>& Buffer::getData() const {
14  return raw->data;
15 }
16 
17 void Buffer::setData(const std::vector<std::uint8_t>& data) {
18  raw->data = data;
19 }
20 
21 void Buffer::setData(std::vector<std::uint8_t>&& data) {
22  raw->data = std::move(data);
23 }
24 
25 // getters
26 std::chrono::time_point<std::chrono::steady_clock, std::chrono::steady_clock::duration> Buffer::getTimestamp() const {
27  using namespace std::chrono;
28  return time_point<steady_clock, steady_clock::duration>{seconds(raw->ts.sec) + nanoseconds(raw->ts.nsec)};
29 }
30 std::chrono::time_point<std::chrono::steady_clock, std::chrono::steady_clock::duration> Buffer::getTimestampDevice() const {
31  using namespace std::chrono;
32  return time_point<steady_clock, steady_clock::duration>{seconds(raw->tsDevice.sec) + nanoseconds(raw->tsDevice.nsec)};
33 }
34 int64_t Buffer::getSequenceNum() const {
35  return raw->sequenceNum;
36 }
37 
38 // setters
39 Buffer& Buffer::setTimestamp(std::chrono::time_point<std::chrono::steady_clock, std::chrono::steady_clock::duration> tp) {
40  // Set timestamp from timepoint
41  using namespace std::chrono;
42  auto ts = tp.time_since_epoch();
43  raw->ts.sec = duration_cast<seconds>(ts).count();
44  raw->ts.nsec = duration_cast<nanoseconds>(ts).count() % 1000000000;
45  return *this;
46 }
47 Buffer& Buffer::setTimestampDevice(std::chrono::time_point<std::chrono::steady_clock, std::chrono::steady_clock::duration> tp) {
48  // Set timestamp from timepoint
49  using namespace std::chrono;
50  auto ts = tp.time_since_epoch();
51  raw->tsDevice.sec = duration_cast<seconds>(ts).count();
52  raw->tsDevice.nsec = duration_cast<nanoseconds>(ts).count() % 1000000000;
53  return *this;
54 }
55 Buffer& Buffer::setSequenceNum(int64_t sequenceNum) {
56  raw->sequenceNum = sequenceNum;
57  return *this;
58 }
59 
60 } // namespace dai
dai::Buffer::serialize
std::shared_ptr< dai::RawBuffer > serialize() const override
Definition: Buffer.cpp:5
dai::Buffer::Buffer
Buffer()
Creates Buffer message.
Definition: Buffer.cpp:9
dai::ADatatype
Abstract message.
Definition: ADatatype.hpp:11
dai::Buffer::getData
std::vector< std::uint8_t > & getData() const
Get non-owning reference to internal buffer.
Definition: Buffer.cpp:13
dai::Buffer::getTimestamp
std::chrono::time_point< std::chrono::steady_clock, std::chrono::steady_clock::duration > getTimestamp() const
Definition: Buffer.cpp:26
dai::Buffer::getTimestampDevice
std::chrono::time_point< std::chrono::steady_clock, std::chrono::steady_clock::duration > getTimestampDevice() const
Definition: Buffer.cpp:30
DAI_SPAN_NAMESPACE_NAME::detail::data
constexpr auto data(C &c) -> decltype(c.data())
Definition: span.hpp:177
dai::Buffer::setTimestamp
Buffer & setTimestamp(std::chrono::time_point< std::chrono::steady_clock, std::chrono::steady_clock::duration > timestamp)
Definition: Buffer.cpp:39
dai::Buffer::setTimestampDevice
Buffer & setTimestampDevice(std::chrono::time_point< std::chrono::steady_clock, std::chrono::steady_clock::duration > timestamp)
Definition: Buffer.cpp:47
dai::Buffer::getSequenceNum
int64_t getSequenceNum() const
Definition: Buffer.cpp:34
dai::Buffer
Base message - buffer of binary data.
Definition: Buffer.hpp:13
std
Definition: Node.hpp:366
dai::RawBuffer
RawBuffer structure.
Definition: RawBuffer.hpp:12
dai::ADatatype::raw
std::shared_ptr< RawBuffer > raw
Definition: ADatatype.hpp:15
dai::Buffer::setData
void setData(const std::vector< std::uint8_t > &data)
Definition: Buffer.cpp:17
Buffer.hpp
dai
Definition: CameraExposureOffset.hpp:6
dai::Buffer::setSequenceNum
Buffer & setSequenceNum(int64_t sequenceNum)
Definition: Buffer.cpp:55


depthai
Author(s): Martin Peterlin
autogenerated on Sat Mar 22 2025 02:58:18