• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

OpenLightingProject / ola / 11783254300

11 Nov 2024 05:23PM UTC coverage: 45.767% (+0.09%) from 45.677%
11783254300

push

github

web-flow
Merge pull request #1978 from DMXControl/add_nodle_r4s

Add DMXControl Projects e.V. Nodle R4S

7798 of 17938 branches covered (43.47%)

0 of 1 new or added line in 1 file covered. (0.0%)

721 existing lines in 11 files now uncovered.

22344 of 48821 relevant lines covered (45.77%)

64.39 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

99.16
/common/messaging/MessagePrinter.cpp
1
/*
2
 * This library is free software; you can redistribute it and/or
3
 * modify it under the terms of the GNU Lesser General Public
4
 * License as published by the Free Software Foundation; either
5
 * version 2.1 of the License, or (at your option) any later version.
6
 *
7
 * This library is distributed in the hope that it will be useful,
8
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
10
 * Lesser General Public License for more details.
11
 *
12
 * You should have received a copy of the GNU Lesser General Public
13
 * License along with this library; if not, write to the Free Software
14
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
15
 *
16
 * MessagePrinter.cpp
17
 * Prints the test representation of a Message.
18
 * Copyright (C) 2011 Simon Newton
19
 */
20

21

22
#include <ola/messaging/Message.h>
23
#include <ola/messaging/MessagePrinter.h>
24
#include <ola/StringUtils.h>
25
#include <iostream>
26
#include <string>
27

28
namespace ola {
29
namespace messaging {
30

31

32
using std::string;
33
using std::endl;
34

35

36
/**
37
 * Build the string representation of a message object
38
 */
39
string MessagePrinter::AsString(const Message *message) {
31✔
40
  m_str.str("");
62✔
41
  message->Accept(this);
31✔
42
  PostStringHook();
31✔
43
  return m_str.str();
31✔
44
}
45

46

47
void GenericMessagePrinter::Visit(const BoolMessageField *message) {
33✔
48
  Stream() << string(m_indent, ' ')
33✔
49
           << TransformLabel(message->GetDescriptor()->Name()) << ": "
66✔
50
           << (message->Value() ? "true" : "false") << endl;
116✔
51
}
33✔
52

53

54
void GenericMessagePrinter::Visit(const IPV4MessageField *message) {
3✔
55
  Stream() << string(m_indent, ' ')
3✔
56
           << TransformLabel(message->GetDescriptor()->Name()) << ": "
12✔
57
           << message->Value() << endl;
3✔
58
}
3✔
59

60

61
void GenericMessagePrinter::Visit(const IPV6MessageField *message) {
3✔
62
  Stream() << string(m_indent, ' ')
3✔
63
           << TransformLabel(message->GetDescriptor()->Name()) << ": "
12✔
64
           << message->Value() << endl;
3✔
65
}
3✔
66

67

68
void GenericMessagePrinter::Visit(const MACMessageField *message) {
3✔
69
  Stream() << string(m_indent, ' ')
3✔
70
           << TransformLabel(message->GetDescriptor()->Name()) << ": "
6✔
71
           << message->Value().ToString() << endl;
15✔
72
}
3✔
73

74

75
void GenericMessagePrinter::Visit(const UIDMessageField *message) {
2✔
76
  Stream() << string(m_indent, ' ')
2✔
77
           << TransformLabel(message->GetDescriptor()->Name()) << ": "
4✔
78
           << message->Value().ToString() << endl;
8✔
79
}
2✔
80

81

82
void GenericMessagePrinter::Visit(const StringMessageField *message) {
12✔
83
  Stream() << string(m_indent, ' ')
12✔
84
           << TransformLabel(message->GetDescriptor()->Name()) << ": "
24✔
85
           << EncodeString(message->Value()) << endl;
51✔
86
}
12✔
87

88

89
void GenericMessagePrinter::Visit(const BasicMessageField<uint8_t> *message) {
49✔
90
  const UInt8FieldDescriptor *descriptor = message->GetDescriptor();
49✔
91
  AppendUInt(descriptor->Name(),
98✔
92
             message->Value(),
49✔
93
             descriptor->LookupValue(message->Value()),
98✔
94
             descriptor->Multiplier());
49✔
95
}
49✔
96

97

98
void GenericMessagePrinter::Visit(const BasicMessageField<uint16_t> *message) {
22✔
99
  const UInt16FieldDescriptor *descriptor = message->GetDescriptor();
22✔
100
  AppendUInt(descriptor->Name(),
44✔
101
             message->Value(),
22✔
102
             descriptor->LookupValue(message->Value()),
44✔
103
             descriptor->Multiplier());
22✔
104
}
22✔
105

106

107
void GenericMessagePrinter::Visit(const BasicMessageField<uint32_t> *message) {
18✔
108
  const UInt32FieldDescriptor *descriptor = message->GetDescriptor();
18✔
109
  AppendUInt(descriptor->Name(),
36✔
110
             message->Value(),
18✔
111
             descriptor->LookupValue(message->Value()),
36✔
112
             descriptor->Multiplier());
18✔
113
}
18✔
114

115

116
void GenericMessagePrinter::Visit(const BasicMessageField<uint64_t> *message) {
4✔
117
  const UInt64FieldDescriptor *descriptor = message->GetDescriptor();
4✔
118
  AppendUInt(descriptor->Name(),
4✔
119
             message->Value(),
120
             descriptor->LookupValue(message->Value()),
8✔
121
             descriptor->Multiplier());
4✔
122
}
4✔
123

124

125
void GenericMessagePrinter::Visit(const BasicMessageField<int8_t> *message) {
4✔
126
  const Int8FieldDescriptor *descriptor = message->GetDescriptor();
4✔
127
  AppendInt(descriptor->Name(),
8✔
128
            message->Value(),
4✔
129
            descriptor->LookupValue(message->Value()),
8✔
130
            descriptor->Multiplier());
4✔
131
}
4✔
132

133

134
void GenericMessagePrinter::Visit(const BasicMessageField<int16_t> *message) {
5✔
135
  const Int16FieldDescriptor *descriptor = message->GetDescriptor();
5✔
136
  AppendInt(descriptor->Name(),
10✔
137
            message->Value(),
5✔
138
            descriptor->LookupValue(message->Value()),
10✔
139
            descriptor->Multiplier());
5✔
140
}
5✔
141

142

143
void GenericMessagePrinter::Visit(const BasicMessageField<int32_t> *message) {
3✔
144
  const Int32FieldDescriptor *descriptor = message->GetDescriptor();
3✔
145
  AppendInt(descriptor->Name(),
6✔
146
            message->Value(),
3✔
147
            descriptor->LookupValue(message->Value()),
6✔
148
            descriptor->Multiplier());
3✔
149
}
3✔
150

151

152
void GenericMessagePrinter::Visit(const BasicMessageField<int64_t> *message) {
3✔
153
  const Int64FieldDescriptor *descriptor = message->GetDescriptor();
3✔
154
  AppendInt(descriptor->Name(),
3✔
155
            message->Value(),
156
            descriptor->LookupValue(message->Value()),
6✔
157
            descriptor->Multiplier());
3✔
158
}
3✔
159

160

161
void GenericMessagePrinter::Visit(const GroupMessageField *message) {
36✔
162
  Stream() << string(m_indent, ' ')
36✔
163
           << TransformLabel(message->GetDescriptor()->Name()) << " {" << endl;
108✔
164
  m_indent += m_indent_size;
36✔
165
}
36✔
166

167

168
void GenericMessagePrinter::PostVisit(const GroupMessageField *message) {
36✔
169
  m_indent -= m_indent_size;
36✔
170
  Stream() << string(m_indent, ' ') << "}" << endl;
36✔
171
  (void) message;
36✔
172
}
36✔
173

174

175
void GenericMessagePrinter::AppendUInt(const string &name,
93✔
176
                                       uint64_t value,
177
                                       const string &label,
178
                                       int8_t multiplier) {
179
  Stream() << string(m_indent, ' ') << TransformLabel(name) << ": ";
279✔
180
  if (label.empty()) {
93✔
181
    Stream() << value;
88✔
182
    AppendMultiplier(multiplier);
88✔
183
  } else {
184
    Stream() << label;
5✔
185
  }
186
  Stream() << endl;
93✔
187
}
93✔
188

189

190
void GenericMessagePrinter::AppendInt(const string &name,
15✔
191
                                      int64_t value,
192
                                      const string &label,
193
                                      int8_t multiplier) {
194
  Stream() << string(m_indent, ' ') << TransformLabel(name) << ": ";
45✔
195
  if (label.empty()) {
15✔
196
    Stream() << value;
15✔
197
    AppendMultiplier(multiplier);
15✔
198
  } else {
UNCOV
199
    Stream() << label;
×
200
  }
201
  Stream() << endl;
15✔
202
}
15✔
203

204

205
void GenericMessagePrinter::AppendMultiplier(int8_t multiplier) {
103✔
206
  if (multiplier) {
103✔
207
    Stream() << " x 10 ^ " << static_cast<int>(multiplier);
3✔
208
  }
209
}
103✔
210
}  // namespace messaging
211
}  // namespace ola
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc