add ReadConcreteMessage
All checks were successful
Linux arm64 / Build (push) Successful in 17s

This commit is contained in:
2025-08-12 11:09:11 +02:00
parent 75bae99daa
commit a60f56e248
2 changed files with 30 additions and 17 deletions

View File

@@ -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);