Loading system/gd/packet/parser/fields/array_field.cc +20 −6 Original line number Diff line number Diff line Loading @@ -106,9 +106,14 @@ void ArrayField::GenExtractor(std::ostream& s, int num_leading_bits, bool for_st s << "}"; } std::string ArrayField::GetGetterFunctionName() const { std::stringstream ss; ss << "Get" << util::UnderscoreToCamelCase(GetName()); return ss.str(); } void ArrayField::GenGetter(std::ostream& s, Size start_offset, Size end_offset) const { s << GetDataType(); s << " Get" << util::UnderscoreToCamelCase(GetName()) << "() {"; s << GetDataType() << " " << GetGetterFunctionName() << "() {"; s << "ASSERT(was_validated_);"; s << "size_t end_index = size();"; s << "auto to_bound = begin();"; Loading @@ -122,13 +127,14 @@ void ArrayField::GenGetter(std::ostream& s, Size start_offset, Size end_offset) s << "}\n"; } bool ArrayField::GenBuilderParameter(std::ostream& s) const { std::string ArrayField::GetBuilderParameterType() const { std::stringstream ss; if (element_field_->BuilderParameterMustBeMoved()) { s << "std::array<" << element_field_->GetDataType() << "," << array_size_ << "> " << GetName(); ss << "std::array<" << element_field_->GetDataType() << "," << array_size_ << ">"; } else { s << "const std::array<" << element_field_->GetDataType() << "," << array_size_ << ">& " << GetName(); ss << "const std::array<" << element_field_->GetDataType() << "," << array_size_ << ">&"; } return true; return ss.str(); } bool ArrayField::BuilderParameterMustBeMoved() const { Loading Loading @@ -161,3 +167,11 @@ void ArrayField::GenValidator(std::ostream&) const { // Other than that there is nothing that arrays need to be validated on other than length so nothing needs to // be done here. } bool ArrayField::IsContainerField() const { return true; } const PacketField* ArrayField::GetElementField() const { return element_field_; } system/gd/packet/parser/fields/array_field.h +7 −1 Original line number Diff line number Diff line Loading @@ -40,9 +40,11 @@ class ArrayField : public PacketField { virtual void GenExtractor(std::ostream& s, int num_leading_bits, bool for_struct) const override; virtual std::string GetGetterFunctionName() const override; virtual void GenGetter(std::ostream& s, Size start_offset, Size end_offset) const override; virtual bool GenBuilderParameter(std::ostream& s) const override; virtual std::string GetBuilderParameterType() const override; virtual bool BuilderParameterMustBeMoved() const override; Loading @@ -56,6 +58,10 @@ class ArrayField : public PacketField { virtual void GenValidator(std::ostream&) const override; virtual bool IsContainerField() const override; virtual const PacketField* GetElementField() const override; const std::string name_; const PacketField* element_field_{nullptr}; Loading system/gd/packet/parser/fields/body_field.cc +6 −2 Original line number Diff line number Diff line Loading @@ -35,10 +35,14 @@ std::string BodyField::GetDataType() const { void BodyField::GenExtractor(std::ostream&, int, bool) const {} std::string BodyField::GetGetterFunctionName() const { return ""; } void BodyField::GenGetter(std::ostream&, Size, Size) const {} bool BodyField::GenBuilderParameter(std::ostream&) const { return false; std::string BodyField::GetBuilderParameterType() const { return ""; } bool BodyField::HasParameterValidator() const { Loading system/gd/packet/parser/fields/body_field.h +3 −1 Original line number Diff line number Diff line Loading @@ -34,9 +34,11 @@ class BodyField : public PacketField { virtual void GenExtractor(std::ostream& s, int num_leading_bits, bool for_struct) const override; virtual std::string GetGetterFunctionName() const override; virtual void GenGetter(std::ostream&, Size, Size) const override; virtual bool GenBuilderParameter(std::ostream&) const override; virtual std::string GetBuilderParameterType() const override; virtual bool HasParameterValidator() const override; Loading system/gd/packet/parser/fields/checksum_field.cc +4 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,10 @@ std::string ChecksumField::GetDataType() const { void ChecksumField::GenExtractor(std::ostream&, int, bool) const {} std::string ChecksumField::GetGetterFunctionName() const { return ""; } void ChecksumField::GenGetter(std::ostream&, Size, Size) const {} bool ChecksumField::GenBuilderParameter(std::ostream&) const { Loading Loading
system/gd/packet/parser/fields/array_field.cc +20 −6 Original line number Diff line number Diff line Loading @@ -106,9 +106,14 @@ void ArrayField::GenExtractor(std::ostream& s, int num_leading_bits, bool for_st s << "}"; } std::string ArrayField::GetGetterFunctionName() const { std::stringstream ss; ss << "Get" << util::UnderscoreToCamelCase(GetName()); return ss.str(); } void ArrayField::GenGetter(std::ostream& s, Size start_offset, Size end_offset) const { s << GetDataType(); s << " Get" << util::UnderscoreToCamelCase(GetName()) << "() {"; s << GetDataType() << " " << GetGetterFunctionName() << "() {"; s << "ASSERT(was_validated_);"; s << "size_t end_index = size();"; s << "auto to_bound = begin();"; Loading @@ -122,13 +127,14 @@ void ArrayField::GenGetter(std::ostream& s, Size start_offset, Size end_offset) s << "}\n"; } bool ArrayField::GenBuilderParameter(std::ostream& s) const { std::string ArrayField::GetBuilderParameterType() const { std::stringstream ss; if (element_field_->BuilderParameterMustBeMoved()) { s << "std::array<" << element_field_->GetDataType() << "," << array_size_ << "> " << GetName(); ss << "std::array<" << element_field_->GetDataType() << "," << array_size_ << ">"; } else { s << "const std::array<" << element_field_->GetDataType() << "," << array_size_ << ">& " << GetName(); ss << "const std::array<" << element_field_->GetDataType() << "," << array_size_ << ">&"; } return true; return ss.str(); } bool ArrayField::BuilderParameterMustBeMoved() const { Loading Loading @@ -161,3 +167,11 @@ void ArrayField::GenValidator(std::ostream&) const { // Other than that there is nothing that arrays need to be validated on other than length so nothing needs to // be done here. } bool ArrayField::IsContainerField() const { return true; } const PacketField* ArrayField::GetElementField() const { return element_field_; }
system/gd/packet/parser/fields/array_field.h +7 −1 Original line number Diff line number Diff line Loading @@ -40,9 +40,11 @@ class ArrayField : public PacketField { virtual void GenExtractor(std::ostream& s, int num_leading_bits, bool for_struct) const override; virtual std::string GetGetterFunctionName() const override; virtual void GenGetter(std::ostream& s, Size start_offset, Size end_offset) const override; virtual bool GenBuilderParameter(std::ostream& s) const override; virtual std::string GetBuilderParameterType() const override; virtual bool BuilderParameterMustBeMoved() const override; Loading @@ -56,6 +58,10 @@ class ArrayField : public PacketField { virtual void GenValidator(std::ostream&) const override; virtual bool IsContainerField() const override; virtual const PacketField* GetElementField() const override; const std::string name_; const PacketField* element_field_{nullptr}; Loading
system/gd/packet/parser/fields/body_field.cc +6 −2 Original line number Diff line number Diff line Loading @@ -35,10 +35,14 @@ std::string BodyField::GetDataType() const { void BodyField::GenExtractor(std::ostream&, int, bool) const {} std::string BodyField::GetGetterFunctionName() const { return ""; } void BodyField::GenGetter(std::ostream&, Size, Size) const {} bool BodyField::GenBuilderParameter(std::ostream&) const { return false; std::string BodyField::GetBuilderParameterType() const { return ""; } bool BodyField::HasParameterValidator() const { Loading
system/gd/packet/parser/fields/body_field.h +3 −1 Original line number Diff line number Diff line Loading @@ -34,9 +34,11 @@ class BodyField : public PacketField { virtual void GenExtractor(std::ostream& s, int num_leading_bits, bool for_struct) const override; virtual std::string GetGetterFunctionName() const override; virtual void GenGetter(std::ostream&, Size, Size) const override; virtual bool GenBuilderParameter(std::ostream&) const override; virtual std::string GetBuilderParameterType() const override; virtual bool HasParameterValidator() const override; Loading
system/gd/packet/parser/fields/checksum_field.cc +4 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,10 @@ std::string ChecksumField::GetDataType() const { void ChecksumField::GenExtractor(std::ostream&, int, bool) const {} std::string ChecksumField::GetGetterFunctionName() const { return ""; } void ChecksumField::GenGetter(std::ostream&, Size, Size) const {} bool ChecksumField::GenBuilderParameter(std::ostream&) const { Loading