SNode.C
Loading...
Searching...
No Matches
StringPair.cpp
Go to the documentation of this file.
1
/*
2
* snode.c - a slim toolkit for network communication
3
* Copyright (C) Volker Christian <me@vchrist.at>
4
* 2020, 2021, 2022, 2023, 2024
5
*
6
* This program is free software: you can redistribute it and/or modify
7
* it under the terms of the GNU Lesser General Public License as published
8
* by the Free Software Foundation, either version 3 of the License, or
9
* (at your option) any later version.
10
*
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU Lesser General Public License for more details.
15
*
16
* You should have received a copy of the GNU Lesser General Public License
17
* along with this program. If not, see <http://www.gnu.org/licenses/>.
18
*/
19
20
#
include
"StringPair.h"
21
22
#
include
"iot/mqtt/types/TypeBase.hpp"
23
24
#
ifndef
DOXYGEN_SHOULD_SKIP_THIS
25
26
#
endif
// DOXYGEN_SHOULD_SKIP_THIS
27
28
namespace
iot::mqtt::
types
{
29
30
StringPair
::
StringPair
() {
31
}
32
33
StringPair
::
StringPair
(
const
std::string& name,
const
std::string& value)
34
:
name
(
name
)
35
,
value
(
value
) {
36
}
37
38
StringPair
::~
StringPair
() {
39
}
40
41
std::size_t
StringPair
::
deserialize
(
MqttContext
* mqttContext) {
42
std::size_t consumed = 0;
43
44
switch
(state) {
45
case
0:
46
consumed += name.deserialize(mqttContext);
47
if
(!name.isComplete()) {
48
break
;
49
}
50
51
state++;
52
[[fallthrough]];
53
case
1:
54
consumed += value.deserialize(mqttContext);
55
56
complete = value.isComplete();
57
break
;
58
}
59
60
return
consumed;
61
}
62
63
std
::
vector
<
char
>
StringPair
::
serialize
()
const
{
64
std::vector<
char
> returnVector = name.serialize();
65
std::vector<
char
> valueSerialization = value.serialize();
66
67
returnVector.insert(returnVector.end(), valueSerialization.begin(), valueSerialization.end());
68
69
return
returnVector;
70
}
71
72
void
StringPair
::
reset
(std::size_t size) {
73
name.reset(size);
74
value.reset(size);
75
}
76
77
}
// namespace iot::mqtt::types
iot::mqtt::MqttContext
Definition
MqttContext.h:39
iot::mqtt::types::StringPair
Definition
StringPair.h:40
iot::mqtt::types::StringPair::serialize
std::vector< char > serialize() const override
Definition
StringPair.cpp:63
iot::mqtt::types::StringPair::~StringPair
~StringPair() override
Definition
StringPair.cpp:38
iot::mqtt::types::StringPair::StringPair
StringPair(const std::string &name, const std::string &value)
Definition
StringPair.cpp:33
iot::mqtt::types::StringPair::reset
void reset(std::size_t size=0) override
Definition
StringPair.cpp:72
iot::mqtt::types::StringPair::deserialize
std::size_t deserialize(iot::mqtt::MqttContext *mqttContext) override
Definition
StringPair.cpp:41
iot::mqtt::types::StringPair::StringPair
StringPair()
Definition
StringPair.cpp:30
iot::mqtt::types
Definition
String.h:33
iot
mqtt
types
StringPair.cpp
Generated on Mon Feb 10 2025 20:21:20 for SNode.C by
1.11.0