Skip to content

Commit 9f0a61b

Browse files
author
Matt Woodward
committed
Break up C++ State to remove legacy dependency, silence compile time warnings in legacy test suites
1 parent 04d5a21 commit 9f0a61b

File tree

237 files changed

+1128
-1095
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

237 files changed

+1128
-1095
lines changed

c/include/libsbp/cpp/state.h

+1-10
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ class State {
4848
return instance->reader_->read(buff, n);
4949
}
5050

51+
protected:
5152
static s32 write_func(u8 *buff, u32 n, void *ctx) {
5253
State *instance = static_cast<State *>(ctx);
5354
return instance->writer_->write(buff, n);
@@ -76,16 +77,6 @@ class State {
7677
return sbp_process(&state_, &read_func);
7778
}
7879

79-
s8 send_message(u16 msg_type, u16 sender_id, u8 length, const u8 payload[]) {
80-
// NOLINTNEXTLINE
81-
return sbp_payload_send(&state_, msg_type, sender_id, length, const_cast<u8 *>(payload), &write_func);
82-
}
83-
84-
s8 process_payload(u16 sender_id, u16 msg_type, u8 msg_length, const u8 payload[]) {
85-
// NOLINTNEXTLINE
86-
return sbp_payload_process(&state_, sender_id, msg_type, msg_length, const_cast<u8 *>(payload));
87-
}
88-
8980
s8 process_message(u16 sender_id, sbp_msg_type_t msg_type, const sbp_msg_t *msg) {
9081
return sbp_message_process(&state_, sender_id, msg_type, msg);
9182
}

c/include/libsbp/legacy/cpp/frame_handler.h

+7-7
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
#include <cassert>
1818
#include <cstddef>
1919

20-
#include <libsbp/cpp/state.h>
20+
#include <libsbp/legacy/cpp/legacy_state.h>
2121
#include <libsbp/legacy/cpp/message_traits.h>
2222

2323
SBP_MESSAGE(
@@ -81,7 +81,7 @@ inline void sbp_frame_cb_passthrough(uint16_t sender_id, uint16_t msg_type,
8181
* @example
8282
* class ECEFHandler : private sbp::FrameHandler<msg_gps_time_t, msg_pos_ecef_t> {
8383
* public:
84-
* ECEFHandler(sbp::State *state) : sbp::FrameHandler<msg_gps_time_t, msg_pos_ecef_t>(state) {
84+
* ECEFHandler(sbp::LegacyState *state) : sbp::FrameHandler<msg_gps_time_t, msg_pos_ecef_t>(state) {
8585
* // The callbacks have already been registered
8686
* // Perform other initialization tasks
8787
* }
@@ -99,12 +99,12 @@ template<typename ...MsgTypes>
9999
class SBP_DEPRECATED FrameHandler {
100100
static constexpr std::size_t kMsgCount = sizeof...(MsgTypes);
101101

102-
State &state_;
102+
LegacyState &state_;
103103
std::array<sbp_msg_callbacks_node_t, kMsgCount> callback_nodes_;
104104

105105
public:
106106

107-
explicit FrameHandler(State *state) : state_(*state), callback_nodes_() {
107+
explicit FrameHandler(LegacyState *state) : state_(*state), callback_nodes_() {
108108
static constexpr std::array<uint16_t, kMsgCount> ids = { sbp::MessageTraits<MsgTypes>::id... };
109109

110110
for (std::size_t i = 0; i < kMsgCount; ++i) {
@@ -156,7 +156,7 @@ class SBP_DEPRECATED FrameHandler {
156156
* @example
157157
* class EverythingHandler : private sbp::AllFrameHandler {
158158
* public:
159-
* EverythingHandler(sbp::State *state) : sbp::AllFrameHandler(state) {
159+
* EverythingHandler(sbp::LegacyState *state) : sbp::AllFrameHandler(state) {
160160
* // The callbacks have already been registered
161161
* // Perform other initialization tasks
162162
* }
@@ -170,12 +170,12 @@ class SBP_DEPRECATED FrameHandler {
170170
*
171171
*/
172172
class SBP_DEPRECATED AllFrameHandler {
173-
State &state_;
173+
LegacyState &state_;
174174
sbp_msg_callbacks_node_t callback_node_;
175175

176176
public:
177177

178-
explicit AllFrameHandler(State *state) : state_(*state), callback_node_() {
178+
explicit AllFrameHandler(LegacyState *state) : state_(*state), callback_node_() {
179179
sbp_all_payload_callback_register(state_.get_state(),
180180
sbp_frame_cb_passthrough<AllFrameHandler>,
181181
this,
+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
/**
2+
* Copyright (C) 2019-2021 Swift Navigation Inc.
3+
* Contact: https://support.swiftnav.com
4+
*
5+
* This source is subject to the license found in the file 'LICENSE' which must
6+
* be be distributed together with this source. All other rights reserved.
7+
*
8+
* THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
9+
* EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
10+
* WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
11+
*/
12+
13+
#ifndef SBP_LEGACY_CPP_LEGACY_STATE_H
14+
#define SBP_LEGACY_CPP_LEGACY_STATE_H
15+
16+
#include <libsbp/cpp/state.h>
17+
18+
SBP_MESSAGE(
19+
"The legacy libsbp API has been deprecated. This file and all symbols contained will "
20+
"be removed in version 6. You should immediately switch over to the modern libsbp API.")
21+
22+
namespace sbp {
23+
24+
class SBP_DEPRECATED LegacyState : public State {
25+
public:
26+
SBP_DEPRECATED s8 send_message(u16 msg_type, u16 sender_id, u8 length, const u8 payload[]) {
27+
// NOLINTNEXTLINE
28+
return sbp_payload_send(get_state(), msg_type, sender_id, length,
29+
const_cast<u8 *>(payload), &State::write_func);
30+
}
31+
32+
SBP_DEPRECATED s8 process_payload(u16 sender_id, u16 msg_type, u8 msg_length,
33+
const u8 payload[]) {
34+
// NOLINTNEXTLINE
35+
return sbp_payload_process(get_state(), sender_id, msg_type, msg_length,
36+
const_cast<u8 *>(payload));
37+
}
38+
};
39+
40+
} // namespace sbp
41+
42+
#endif

c/include/libsbp/legacy/cpp/payload_handler.h

+4-4
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
#include <cassert>
1717
#include <array>
1818

19-
#include <libsbp/cpp/state.h>
19+
#include <libsbp/legacy/cpp/legacy_state.h>
2020
#include <libsbp/legacy/cpp/message_traits.h>
2121
#include <libsbp/legacy/compat.h>
2222

@@ -127,7 +127,7 @@ class SBP_DEPRECATED PayloadCallbackInterface<MsgType> {
127127
* @example
128128
* class ECEFHandler : private sbp::PayloadHandler<msg_gps_time_t, msg_pos_ecef_t> {
129129
* public:
130-
* ECEFHandler(sbp::State *state) : sbp::PayloadHandler<msg_gps_time_t, msg_pos_ecef_t>(state) {
130+
* ECEFHandler(sbp::LegacyState *state) : sbp::PayloadHandler<msg_gps_time_t, msg_pos_ecef_t>(state) {
131131
* // The callbacks have already been registered
132132
* // Perform other initialization tasks
133133
* }
@@ -147,12 +147,12 @@ template<typename... MsgTypes>
147147
class SBP_DEPRECATED PayloadHandler : public details::PayloadCallbackInterface<MsgTypes...> {
148148
static constexpr std::size_t kMsgCount = sizeof...(MsgTypes);
149149

150-
State &state_;
150+
LegacyState &state_;
151151
std::array<sbp_msg_callbacks_node_t, kMsgCount> callback_nodes_;
152152

153153
public:
154154

155-
explicit PayloadHandler(State *state) : details::PayloadCallbackInterface<MsgTypes...>(), state_(*state), callback_nodes_() {
155+
explicit PayloadHandler(LegacyState *state) : details::PayloadCallbackInterface<MsgTypes...>(), state_(*state), callback_nodes_() {
156156
details::PayloadCallbackInterface<MsgTypes...>::register_callback(state_.get_state(), callback_nodes_.data());
157157
}
158158

c/test/legacy/cpp/auto_check_sbp_acquisition_MsgAcqResult.cc

+3-3
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
#include <gtest/gtest.h>
1818

1919
#include <libsbp/common.h>
20-
#include <libsbp/cpp/state.h>
2120

2221
// Obviously we don't normally want to silence this message, but we also need to
2322
// still test the legacy implementation for as long as it exists. By silencing
@@ -27,18 +26,19 @@
2726
#define SBP_MESSAGE(x)
2827
#endif
2928
#include <libsbp/legacy/acquisition.h>
29+
#include <libsbp/legacy/cpp/legacy_state.h>
3030
#include <libsbp/legacy/cpp/message_traits.h>
3131
#include <libsbp/legacy/cpp/payload_handler.h>
3232
class Test_legacy_auto_check_sbp_acquisition_MsgAcqResult0
3333
: public ::testing::Test,
34-
public sbp::State,
34+
public sbp::LegacyState,
3535
public sbp::IReader,
3636
public sbp::IWriter,
3737
sbp::PayloadHandler<msg_acq_result_t> {
3838
public:
3939
Test_legacy_auto_check_sbp_acquisition_MsgAcqResult0()
4040
: ::testing::Test(),
41-
sbp::State(),
41+
sbp::LegacyState(),
4242
sbp::IReader(),
4343
sbp::IWriter(),
4444
sbp::PayloadHandler<msg_acq_result_t>(this),

c/test/legacy/cpp/auto_check_sbp_acquisition_MsgAcqResultDepA.cc

+13-13
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
#include <gtest/gtest.h>
1818

1919
#include <libsbp/common.h>
20-
#include <libsbp/cpp/state.h>
2120

2221
// Obviously we don't normally want to silence this message, but we also need to
2322
// still test the legacy implementation for as long as it exists. By silencing
@@ -27,18 +26,19 @@
2726
#define SBP_MESSAGE(x)
2827
#endif
2928
#include <libsbp/legacy/acquisition.h>
29+
#include <libsbp/legacy/cpp/legacy_state.h>
3030
#include <libsbp/legacy/cpp/message_traits.h>
3131
#include <libsbp/legacy/cpp/payload_handler.h>
3232
class Test_legacy_auto_check_sbp_acquisition_MsgAcqResultDepA0
3333
: public ::testing::Test,
34-
public sbp::State,
34+
public sbp::LegacyState,
3535
public sbp::IReader,
3636
public sbp::IWriter,
3737
sbp::PayloadHandler<msg_acq_result_dep_a_t> {
3838
public:
3939
Test_legacy_auto_check_sbp_acquisition_MsgAcqResultDepA0()
4040
: ::testing::Test(),
41-
sbp::State(),
41+
sbp::LegacyState(),
4242
sbp::IReader(),
4343
sbp::IWriter(),
4444
sbp::PayloadHandler<msg_acq_result_dep_a_t>(this),
@@ -126,14 +126,14 @@ TEST_F(Test_legacy_auto_check_sbp_acquisition_MsgAcqResultDepA0, Test) {
126126
}
127127
class Test_legacy_auto_check_sbp_acquisition_MsgAcqResultDepA1
128128
: public ::testing::Test,
129-
public sbp::State,
129+
public sbp::LegacyState,
130130
public sbp::IReader,
131131
public sbp::IWriter,
132132
sbp::PayloadHandler<msg_acq_result_dep_a_t> {
133133
public:
134134
Test_legacy_auto_check_sbp_acquisition_MsgAcqResultDepA1()
135135
: ::testing::Test(),
136-
sbp::State(),
136+
sbp::LegacyState(),
137137
sbp::IReader(),
138138
sbp::IWriter(),
139139
sbp::PayloadHandler<msg_acq_result_dep_a_t>(this),
@@ -222,14 +222,14 @@ TEST_F(Test_legacy_auto_check_sbp_acquisition_MsgAcqResultDepA1, Test) {
222222
}
223223
class Test_legacy_auto_check_sbp_acquisition_MsgAcqResultDepA2
224224
: public ::testing::Test,
225-
public sbp::State,
225+
public sbp::LegacyState,
226226
public sbp::IReader,
227227
public sbp::IWriter,
228228
sbp::PayloadHandler<msg_acq_result_dep_a_t> {
229229
public:
230230
Test_legacy_auto_check_sbp_acquisition_MsgAcqResultDepA2()
231231
: ::testing::Test(),
232-
sbp::State(),
232+
sbp::LegacyState(),
233233
sbp::IReader(),
234234
sbp::IWriter(),
235235
sbp::PayloadHandler<msg_acq_result_dep_a_t>(this),
@@ -319,14 +319,14 @@ TEST_F(Test_legacy_auto_check_sbp_acquisition_MsgAcqResultDepA2, Test) {
319319
}
320320
class Test_legacy_auto_check_sbp_acquisition_MsgAcqResultDepA3
321321
: public ::testing::Test,
322-
public sbp::State,
322+
public sbp::LegacyState,
323323
public sbp::IReader,
324324
public sbp::IWriter,
325325
sbp::PayloadHandler<msg_acq_result_dep_a_t> {
326326
public:
327327
Test_legacy_auto_check_sbp_acquisition_MsgAcqResultDepA3()
328328
: ::testing::Test(),
329-
sbp::State(),
329+
sbp::LegacyState(),
330330
sbp::IReader(),
331331
sbp::IWriter(),
332332
sbp::PayloadHandler<msg_acq_result_dep_a_t>(this),
@@ -416,14 +416,14 @@ TEST_F(Test_legacy_auto_check_sbp_acquisition_MsgAcqResultDepA3, Test) {
416416
}
417417
class Test_legacy_auto_check_sbp_acquisition_MsgAcqResultDepA4
418418
: public ::testing::Test,
419-
public sbp::State,
419+
public sbp::LegacyState,
420420
public sbp::IReader,
421421
public sbp::IWriter,
422422
sbp::PayloadHandler<msg_acq_result_dep_a_t> {
423423
public:
424424
Test_legacy_auto_check_sbp_acquisition_MsgAcqResultDepA4()
425425
: ::testing::Test(),
426-
sbp::State(),
426+
sbp::LegacyState(),
427427
sbp::IReader(),
428428
sbp::IWriter(),
429429
sbp::PayloadHandler<msg_acq_result_dep_a_t>(this),
@@ -512,14 +512,14 @@ TEST_F(Test_legacy_auto_check_sbp_acquisition_MsgAcqResultDepA4, Test) {
512512
}
513513
class Test_legacy_auto_check_sbp_acquisition_MsgAcqResultDepA5
514514
: public ::testing::Test,
515-
public sbp::State,
515+
public sbp::LegacyState,
516516
public sbp::IReader,
517517
public sbp::IWriter,
518518
sbp::PayloadHandler<msg_acq_result_dep_a_t> {
519519
public:
520520
Test_legacy_auto_check_sbp_acquisition_MsgAcqResultDepA5()
521521
: ::testing::Test(),
522-
sbp::State(),
522+
sbp::LegacyState(),
523523
sbp::IReader(),
524524
sbp::IWriter(),
525525
sbp::PayloadHandler<msg_acq_result_dep_a_t>(this),

0 commit comments

Comments
 (0)