Skip to content

Commit 0f6c83c

Browse files
committed
implicit conversion ByteArray to std::string_view, remove template for comm::TelegramHeader construct_from_data
1 parent 1e4f109 commit 0f6c83c

File tree

5 files changed

+14
-13
lines changed

5 files changed

+14
-13
lines changed

vpr/src/server/bytearray.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,8 @@ class ByteArray : public std::vector<char> {
5858
return std::make_pair(false, 0);
5959
}
6060

61-
std::string to_string() const {
62-
return std::string(reinterpret_cast<const char*>(this->data()), this->size());
61+
operator std::string_view() const {
62+
return std::string_view(this->data(), this->size());
6363
}
6464

6565
uint32_t calc_check_sum() {

vpr/src/server/gateio.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ GateIO::ActivityStatus GateIO::handle_telegrams(std::vector<comm::TelegramFrameP
134134
telegram_buff.take_telegram_frames(telegram_frames);
135135
for (const comm::TelegramFramePtr& telegram_frame: telegram_frames) {
136136
// process received data
137-
std::string message{telegram_frame->data.to_string()};
137+
std::string message{telegram_frame->data};
138138
bool is_echo_telegram = false;
139139
if ((message.size() == comm::ECHO_DATA.size()) && (message == comm::ECHO_DATA)) {
140140
m_logger.queue(LogLevel::Detail, "received", comm::ECHO_DATA);
@@ -168,7 +168,7 @@ GateIO::ActivityStatus GateIO::handle_client_alive_tracker(sockpp::tcp6_socket&
168168
/// handle sending echo to client
169169
if (client_alive_tracker_ptr->is_time_to_sent_echo()) {
170170
comm::TelegramHeader echo_header = comm::TelegramHeader::construct_from_data(comm::ECHO_DATA);
171-
std::string message = echo_header.buffer().to_string();
171+
std::string message{echo_header.buffer()};
172172
message.append(comm::ECHO_DATA);
173173
try {
174174
std::size_t bytes_sent = client.write(message);

vpr/src/server/telegramheader.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,11 @@ std::string TelegramHeader::info() const {
7373
return ss.str();
7474
}
7575

76+
comm::TelegramHeader TelegramHeader::construct_from_data(const std::string_view& body, uint8_t compressor_id) {
77+
uint32_t body_check_sum = ByteArray::calc_check_sum(body);
78+
return comm::TelegramHeader{static_cast<uint32_t>(body.size()), body_check_sum, compressor_id};
79+
}
80+
7681
} // namespace comm
7782

7883
#endif /* NO_SERVER */

vpr/src/server/telegramheader.h

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,7 @@ class TelegramHeader {
4242
explicit TelegramHeader(const ByteArray& body);
4343
~TelegramHeader()=default;
4444

45-
template<typename T>
46-
static comm::TelegramHeader construct_from_data(const T& body, uint8_t compressor_id = 0) {
47-
uint32_t body_check_sum = ByteArray::calc_check_sum(body);
48-
return comm::TelegramHeader{static_cast<uint32_t>(body.size()), body_check_sum, compressor_id};
49-
}
45+
static comm::TelegramHeader construct_from_data(const std::string_view& body, uint8_t compressor_id = 0);
5046

5147
static constexpr size_t size() {
5248
return SIGNATURE_SIZE + LENGTH_SIZE + CHECKSUM_SIZE + COMPRESSORID_SIZE;

vpr/test/test_server_telegrambuffer.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,21 +18,21 @@ TEST_CASE("test_server_bytearray", "[vpr]") {
1818
REQUIRE(array.at(4) == '2');
1919
REQUIRE(array.at(5) == '2');
2020

21-
REQUIRE(array.to_string() == "111222");
21+
REQUIRE(std::string_view{array} == "111222");
2222

2323
REQUIRE(array.size() == 6);
2424

2525
array.append('3');
2626

2727
REQUIRE(array.size() == 7);
28-
REQUIRE(array.to_string() == "1112223");
28+
REQUIRE(std::string_view{array} == "1112223");
2929

3030
REQUIRE(array.at(6) == '3');
3131

3232
array.clear();
3333

3434
REQUIRE(array.size() == 0);
35-
REQUIRE(array.to_string() == "");
35+
REQUIRE(std::string_view{array} == "");
3636
}
3737

3838
TEST_CASE("test_server_telegrambuffer_oneOpened", "[vpr]") {
@@ -43,7 +43,7 @@ TEST_CASE("test_server_telegrambuffer_oneOpened", "[vpr]") {
4343
auto frames = buff.take_telegram_frames();
4444
REQUIRE(frames.size() == 0);
4545

46-
REQUIRE(buff.data().to_string() == "111222");
46+
REQUIRE(std::string_view{buff.data()} == "111222");
4747
}
4848

4949
TEST_CASE("test_server_telegrambuffer_notFilledTelegramButWithPrependedRubish", "[vpr]")

0 commit comments

Comments
 (0)