Exemple #1
0
class FastGrrMessageList(rdf_structs.RDFProtoStruct):
  """A Faster implementation of GrrMessageList."""

  type_description = type_info.TypeDescriptorSet(
      rdf_structs.ProtoList(
          rdf_structs.ProtoEmbedded(
              name="job", field_number=1, nested=StructGrrMessage)))
Exemple #2
0
class LateBindingTest(structs.RDFProtoStruct):
    type_description = type_info.TypeDescriptorSet(
        # A nested protobuf referring to an undefined type.
        structs.ProtoEmbedded(name="nested",
                              field_number=1,
                              nested="UndefinedYet"),
        structs.ProtoRDFValue(name="rdfvalue",
                              field_number=6,
                              rdf_type="UndefinedRDFValue",
                              description="An undefined RDFValue field."),

        # A repeated late bound field.
        structs.ProtoList(
            structs.ProtoRDFValue(name="repeated",
                                  field_number=7,
                                  rdf_type="UndefinedRDFValue2",
                                  description="An undefined RDFValue field.")),
    )
Exemple #3
0
class TestStruct(structs.RDFProtoStruct):
  """A test struct object."""

  type_description = type_info.TypeDescriptorSet(
      structs.ProtoString(
          name="foobar",
          field_number=1,
          default="string",
          description="A string value",
          labels=[structs.SemanticDescriptor.Labels.HIDDEN]),
      structs.ProtoUnsignedInteger(
          name="int", field_number=2, default=5,
          description="An integer value"),
      structs.ProtoList(
          structs.ProtoString(
              name="repeated",
              field_number=3,
              description="A repeated string value")),

      # We can serialize an arbitrary RDFValue. This will be serialized into a
      # binary string and parsed on demand.
      structs.ProtoRDFValue(
          name="urn",
          field_number=6,
          default=rdfvalue.RDFURN("www.google.com"),
          rdf_type="RDFURN",
          description="An arbitrary RDFValue field."),
      structs.ProtoEnum(
          name="type",
          field_number=7,
          enum_name="Type",
          enum=dict(FIRST=1, SECOND=2, THIRD=3),
          default=3,
          description="An enum field"),
      structs.ProtoFloat(
          name="float",
          field_number=8,
          description="A float number",
          default=1.1),)
Exemple #4
0
                          description="An enum field"),
        structs.ProtoFloat(name="float",
                           field_number=8,
                           description="A float number",
                           default=1.1),
    )


# In order to define a recursive structure we must add it manually after the
# class definition.
TestStruct.AddDescriptor(
    structs.ProtoEmbedded(name="nested", field_number=4, nested=TestStruct), )

TestStruct.AddDescriptor(
    structs.ProtoList(
        structs.ProtoEmbedded(name="repeat_nested",
                              field_number=5,
                              nested=TestStruct)), )


class PartialTest1(structs.RDFProtoStruct):
    """This is a protobuf with fewer fields than TestStruct."""
    type_description = type_info.TypeDescriptorSet(
        structs.ProtoUnsignedInteger(name="int", field_number=2), )


class DynamicTypeTest(structs.RDFProtoStruct):
    """A protobuf with dynamic types."""

    type_description = type_info.TypeDescriptorSet(
        structs.ProtoString(
            name="type",