Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9340bb0c authored by Myles Watson's avatar Myles Watson
Browse files

PDL: Add Structs

Test: bluetooth_packet_parser_test
Change-Id: I2d0288aa4e62589dd03d93a1b47ce0585584cab5
parent cf34fd95
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -19,12 +19,14 @@ cc_binary_host {
        "fields/reserved_field.cc",
        "fields/scalar_field.cc",
        "fields/size_field.cc",
        "fields/struct_field.cc",
        "checksum_def.cc",
        "custom_field_def.cc",
        "enum_def.cc",
        "enum_gen.cc",
        "packet_def.cc",
        "parent_def.cc",
        "struct_def.cc",
        "main.cc",
        "language_y.yy",
        "language_l.ll",
+1 −0
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@
#include "enum_def.h"
#include "enum_gen.h"
#include "packet_def.h"
#include "struct_def.h"

class Declarations {
 public:
+1 −0
Original line number Diff line number Diff line
@@ -31,4 +31,5 @@
#include "fields/reserved_field.h"
#include "fields/scalar_field.h"
#include "fields/size_field.h"
#include "fields/struct_field.h"
#include "fields/vector_field.h"
+6 −0
Original line number Diff line number Diff line
@@ -136,6 +136,8 @@ void ArrayField::GenInserter(std::ostream& s) const {
    } else {
      s << "insert(val, i);";
    }
  } else if (IsStructArray()) {
    s << "val.Serialize(i);";
  } else {
    s << "insert(val, i, " << element_size_ << ");";
  }
@@ -157,3 +159,7 @@ bool ArrayField::IsEnumArray() const {
bool ArrayField::IsCustomFieldArray() const {
  return type_def_ != nullptr && type_def_->GetDefinitionType() == TypeDef::Type::CUSTOM;
}

bool ArrayField::IsStructArray() const {
  return type_def_ != nullptr && type_def_->GetDefinitionType() == TypeDef::Type::STRUCT;
}
+2 −0
Original line number Diff line number Diff line
@@ -59,6 +59,8 @@ class ArrayField : public PacketField {

  bool IsCustomFieldArray() const;

  bool IsStructArray() const;

  const std::string name_;

  const int element_size_{-1};  // in bits
Loading