This commit is contained in:
@@ -12,9 +12,10 @@ DataBuffer MessageStream<TMessageFactory>::ReadAndDecapsulate() {
|
||||
DataBuffer buffer = m_Stream->Read(1);
|
||||
data = *buffer.data();
|
||||
});
|
||||
|
||||
std::size_t amount = messageLength.GetValue();
|
||||
DataBuffer buffer = m_Stream->Read(amount);
|
||||
|
||||
|
||||
for (auto& enc : m_Encapsulators) {
|
||||
buffer = enc->Decapsulate(buffer);
|
||||
}
|
||||
@@ -23,7 +24,19 @@ DataBuffer MessageStream<TMessageFactory>::ReadAndDecapsulate() {
|
||||
}
|
||||
|
||||
template <typename TMessageFactory>
|
||||
std::unique_ptr<typename TMessageFactory::MessageBaseType> MessageStream<TMessageFactory>::MakeMessage(DataBuffer& buffer, MessageIdType a_Id) {
|
||||
template <typename TMessage>
|
||||
std::unique_ptr<TMessage> MessageStream<TMessageFactory>::ReadConcreteMessage() {
|
||||
DataBuffer buffer = ReadAndDecapsulate();
|
||||
|
||||
auto m_Message = std::make_unique<TMessage>();
|
||||
m_Message->Read(buffer);
|
||||
|
||||
return m_Message;
|
||||
}
|
||||
|
||||
template <typename TMessageFactory>
|
||||
std::unique_ptr<typename TMessageFactory::MessageBaseType> MessageStream<TMessageFactory>::MakeMessage(
|
||||
DataBuffer& buffer, MessageIdType a_Id) {
|
||||
static const TMessageFactory FACTORY;
|
||||
auto message = FACTORY.CreateMessage(a_Id);
|
||||
message->Read(buffer);
|
||||
@@ -32,7 +45,7 @@ std::unique_ptr<typename TMessageFactory::MessageBaseType> MessageStream<TMessag
|
||||
|
||||
template <typename TMessageFactory>
|
||||
std::unique_ptr<typename TMessageFactory::MessageBaseType> MessageStream<TMessageFactory>::ReadMessage(MessageIdType a_Id) {
|
||||
|
||||
|
||||
DataBuffer buffer = ReadAndDecapsulate();
|
||||
|
||||
return MakeMessage(buffer, a_Id);
|
||||
|
||||
Reference in New Issue
Block a user