constructor for packets

This commit is contained in:
2025-02-06 19:01:32 +01:00
parent a63395f219
commit 7108ed4f28
4 changed files with 23 additions and 65 deletions

View File

@@ -54,7 +54,7 @@ struct MessageImplParsedOptions<option::DispatchImpl<TActual>, TOptions...> : pu
template <typename TFields, typename... TOptions>
struct MessageImplParsedOptions<option::FieldsImpl<TFields>, TOptions...> : public MessageImplParsedOptions<TOptions...> {
static const bool HasFieldsImpl = true;
using Fields = typename FieldsBuilder<TFields>::Type;
using Fields = TFields;
};
@@ -92,7 +92,12 @@ class MessageImplDispatchBase : public TBase {
template <typename TBase, typename TFields>
class MessageImplFieldsBase : public TBase {
public:
using AllFields = TFields;
using AllFields = typename FieldsBuilder<TFields>::Type;
template<typename... Args>
void Construct(Args... args) {
m_Fields = std::make_tuple(args...);
}
AllFields& GetFields() {
return m_Fields;
@@ -107,7 +112,7 @@ class MessageImplFieldsBase : public TBase {
}
private:
TFields m_Fields;
AllFields m_Fields;
};
template <typename TBase>
@@ -116,7 +121,7 @@ class MessageImplFieldsReadBase : public TBase {
void ReadImpl(DataBuffer& buffer) override {
//TODO: add endianess
auto& allFields = TBase::GetFields();
tupleForEach(allFields, FieldReader{buffer});
std::apply(FieldReader{buffer}, allFields);
}
};
@@ -126,7 +131,7 @@ class MessageImplFieldsWriteBase : public TBase {
void WriteImpl(DataBuffer& buffer) override {
//TODO: add endianess
auto& allFields = TBase::GetFields();
tupleForEach(allFields, FieldWriter{buffer});
std::apply(FieldWriter{buffer}, allFields);
}
};