constructor for packets
This commit is contained in:
@@ -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);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user