OpenVPN 3 Core Library
Loading...
Searching...
No Matches
asiobuf.hpp
Go to the documentation of this file.
1// OpenVPN -- An application to securely tunnel IP networks
2// over a single port, with support for SSL/TLS-based
3// session authentication and key exchange,
4// packet encryption, packet authentication, and
5// packet compression.
6//
7// Copyright (C) 2012- OpenVPN Inc.
8//
9// SPDX-License-Identifier: MPL-2.0 OR AGPL-3.0-only WITH openvpn3-openssl-exception
10//
11
12#ifndef OPENVPN_BUFFER_ASIOBUF_H
13#define OPENVPN_BUFFER_ASIOBUF_H
14
15#include <openvpn/io/io.hpp>
16
18
19namespace openvpn {
21{
22 public:
23 AsioConstBufferSeq2(const Buffer &b1, const Buffer &b2)
24 : buf{openvpn_io::const_buffer{b1.c_data(), b1.size()},
25 openvpn_io::const_buffer{b2.c_data(), b2.size()}}
26 {
27 }
28
29 // Implement the ConstBufferSequence requirements.
30 typedef openvpn_io::const_buffer value_type;
31 typedef const openvpn_io::const_buffer *const_iterator;
32 const openvpn_io::const_buffer *begin() const
33 {
34 return buf;
35 }
36 const openvpn_io::const_buffer *end() const
37 {
38 return buf + 2;
39 }
40
41 size_t size() const
42 {
43 return openvpn_io::buffer_size(buf[0])
44 + openvpn_io::buffer_size(buf[1]);
45 }
46
47 private:
48 const openvpn_io::const_buffer buf[2];
49};
50} // namespace openvpn
51
52#endif
const openvpn_io::const_buffer * begin() const
Definition asiobuf.hpp:32
const openvpn_io::const_buffer * const_iterator
Definition asiobuf.hpp:31
AsioConstBufferSeq2(const Buffer &b1, const Buffer &b2)
Definition asiobuf.hpp:23
const openvpn_io::const_buffer buf[2]
Definition asiobuf.hpp:48
const openvpn_io::const_buffer * end() const
Definition asiobuf.hpp:36
openvpn_io::const_buffer value_type
Definition asiobuf.hpp:30