Vanetza
 
Loading...
Searching...
No Matches
io_vector.cpp
1#include "io_vector.hpp"
2#include "buffer_packet.hpp"
3
4namespace vanetza
5{
6
7void IoVector::clear()
8{
9 m_vector.clear();
10}
11
12void IoVector::append(const void* base, std::size_t length)
13{
14 iovec node;
15 node.iov_base = const_cast<void*>(base);
16 node.iov_len = length;
17 m_vector.push_back(node);
18}
19
20void IoVector::append(const BufferPacket& packet)
21{
22 for (auto& kv : packet) {
23 const ByteBuffer& buffer = kv.second;
24 append(buffer.data(), buffer.size());
25 }
26}
27
28std::size_t IoVector::length() const
29{
30 return m_vector.size();
31}
32
33const iovec* IoVector::base() const
34{
35 return m_vector.empty() ? nullptr : &m_vector[0];
36}
37
38} // namespace vanetza
39