From d542aa0b24d5607ee066a2a50f5e29064c1aaef7 Mon Sep 17 00:00:00 2001 From: Determinant Date: Wed, 1 Aug 2018 14:15:43 -0400 Subject: ... --- include/salticidae/msg.h | 7 +++---- include/salticidae/network.h | 6 ++---- 2 files changed, 5 insertions(+), 8 deletions(-) (limited to 'include') diff --git a/include/salticidae/msg.h b/include/salticidae/msg.h index bc1a633..80b468a 100644 --- a/include/salticidae/msg.h +++ b/include/salticidae/msg.h @@ -61,7 +61,8 @@ class MsgBase { template::value && - !std::is_same::value>::type> + !std::is_same::value && + !std::is_same::value>::type> MsgBase(const MsgType &msg): magic(0x0) { set_opcode(MsgType::opcode); set_payload(std::move(msg.serialized)); @@ -87,15 +88,13 @@ class MsgBase { payload(std::move(other.payload)), no_payload(other.no_payload) {} - MsgBase(const uint8_t *raw_header): no_payload(true) { + MsgBase(DataStream &&s): no_payload(true) { uint32_t _magic; opcode_t _opcode; uint32_t _length; #ifndef SALTICIDAE_NOCHECKSUM uint32_t _checksum; #endif - DataStream s(raw_header, raw_header + MsgBase::header_size); - s >> _magic >> _opcode >> _length diff --git a/include/salticidae/network.h b/include/salticidae/network.h index f6623b6..c7b7f66 100644 --- a/include/salticidae/network.h +++ b/include/salticidae/network.h @@ -377,8 +377,7 @@ void MsgNetwork::Conn::on_read() { { if (recv_buffer.size() < Msg::header_size) break; /* new header available */ - bytearray_t data = recv_buffer.pop(Msg::header_size); - msg = Msg(data.data()); + msg = Msg(recv_buffer.pop(Msg::header_size)); msg_state = Conn::PAYLOAD; } if (msg_state == Conn::PAYLOAD) @@ -386,8 +385,7 @@ void MsgNetwork::Conn::on_read() { size_t len = msg.get_length(); if (recv_buffer.size() < len) break; /* new payload available */ - bytearray_t data = recv_buffer.pop(len); - msg.set_payload(std::move(data)); + msg.set_payload(recv_buffer.pop(len)); msg_state = Conn::HEADER; #ifndef SALTICIDAE_NOCHECKSUM if (!msg.verify_checksum()) -- cgit v1.2.3-70-g09d2