text: // DO NOT EDIT. Autogenerated by Perfetto cppgen_plugin
  #ifndef PERFETTO_PROTOS_PROTOS_PERFETTO_TRACE_TRACK_EVENT_CHROME_LEGACY_IPC_PROTO_CPP_H_
  #define PERFETTO_PROTOS_PROTOS_PERFETTO_TRACE_TRACK_EVENT_CHROME_LEGACY_IPC_PROTO_CPP_H_
  
  #include <stdint.h>
  #include <bitset>
  #include <vector>
  #include <string>
  #include <type_traits>
  
  #include "perfetto/protozero/cpp_message_obj.h"
  #include "perfetto/protozero/copyable_ptr.h"
  #include "perfetto/base/export.h"
  
  namespace perfetto {
  namespace protos {
  namespace gen {
  class ChromeLegacyIpc;
  enum ChromeLegacyIpc_MessageClass : int;
  }  // namespace perfetto
  }  // namespace protos
  }  // namespace gen
  
  namespace protozero {
  class Message;
  }  // namespace protozero
  
  namespace perfetto {
  namespace protos {
  namespace gen {
  enum ChromeLegacyIpc_MessageClass : int {
    ChromeLegacyIpc_MessageClass_CLASS_UNSPECIFIED = 0,
    ChromeLegacyIpc_MessageClass_CLASS_AUTOMATION = 1,
    ChromeLegacyIpc_MessageClass_CLASS_FRAME = 2,
    ChromeLegacyIpc_MessageClass_CLASS_PAGE = 3,
    ChromeLegacyIpc_MessageClass_CLASS_VIEW = 4,
    ChromeLegacyIpc_MessageClass_CLASS_WIDGET = 5,
    ChromeLegacyIpc_MessageClass_CLASS_INPUT = 6,
    ChromeLegacyIpc_MessageClass_CLASS_TEST = 7,
    ChromeLegacyIpc_MessageClass_CLASS_WORKER = 8,
    ChromeLegacyIpc_MessageClass_CLASS_NACL = 9,
    ChromeLegacyIpc_MessageClass_CLASS_GPU_CHANNEL = 10,
    ChromeLegacyIpc_MessageClass_CLASS_MEDIA = 11,
    ChromeLegacyIpc_MessageClass_CLASS_PPAPI = 12,
    ChromeLegacyIpc_MessageClass_CLASS_CHROME = 13,
    ChromeLegacyIpc_MessageClass_CLASS_DRAG = 14,
    ChromeLegacyIpc_MessageClass_CLASS_PRINT = 15,
    ChromeLegacyIpc_MessageClass_CLASS_EXTENSION = 16,
    ChromeLegacyIpc_MessageClass_CLASS_TEXT_INPUT_CLIENT = 17,
    ChromeLegacyIpc_MessageClass_CLASS_BLINK_TEST = 18,
    ChromeLegacyIpc_MessageClass_CLASS_ACCESSIBILITY = 19,
    ChromeLegacyIpc_MessageClass_CLASS_PRERENDER = 20,
    ChromeLegacyIpc_MessageClass_CLASS_CHROMOTING = 21,
    ChromeLegacyIpc_MessageClass_CLASS_BROWSER_PLUGIN = 22,
    ChromeLegacyIpc_MessageClass_CLASS_ANDROID_WEB_VIEW = 23,
    ChromeLegacyIpc_MessageClass_CLASS_NACL_HOST = 24,
    ChromeLegacyIpc_MessageClass_CLASS_ENCRYPTED_MEDIA = 25,
    ChromeLegacyIpc_MessageClass_CLASS_CAST = 26,
    ChromeLegacyIpc_MessageClass_CLASS_GIN_JAVA_BRIDGE = 27,
    ChromeLegacyIpc_MessageClass_CLASS_CHROME_UTILITY_PRINTING = 28,
    ChromeLegacyIpc_MessageClass_CLASS_OZONE_GPU = 29,
    ChromeLegacyIpc_MessageClass_CLASS_WEB_TEST = 30,
    ChromeLegacyIpc_MessageClass_CLASS_NETWORK_HINTS = 31,
    ChromeLegacyIpc_MessageClass_CLASS_EXTENSIONS_GUEST_VIEW = 32,
    ChromeLegacyIpc_MessageClass_CLASS_GUEST_VIEW = 33,
    ChromeLegacyIpc_MessageClass_CLASS_MEDIA_PLAYER_DELEGATE = 34,
    ChromeLegacyIpc_MessageClass_CLASS_EXTENSION_WORKER = 35,
    ChromeLegacyIpc_MessageClass_CLASS_SUBRESOURCE_FILTER = 36,
    ChromeLegacyIpc_MessageClass_CLASS_UNFREEZABLE_FRAME = 37,
  };
  
  class PERFETTO_EXPORT ChromeLegacyIpc : public ::protozero::CppMessageObj {
   public:
    using MessageClass = ChromeLegacyIpc_MessageClass;
    static constexpr auto CLASS_UNSPECIFIED = ChromeLegacyIpc_MessageClass_CLASS_UNSPECIFIED;
    static constexpr auto CLASS_AUTOMATION = ChromeLegacyIpc_MessageClass_CLASS_AUTOMATION;
    static constexpr auto CLASS_FRAME = ChromeLegacyIpc_MessageClass_CLASS_FRAME;
    static constexpr auto CLASS_PAGE = ChromeLegacyIpc_MessageClass_CLASS_PAGE;
    static constexpr auto CLASS_VIEW = ChromeLegacyIpc_MessageClass_CLASS_VIEW;
    static constexpr auto CLASS_WIDGET = ChromeLegacyIpc_MessageClass_CLASS_WIDGET;
    static constexpr auto CLASS_INPUT = ChromeLegacyIpc_MessageClass_CLASS_INPUT;
    static constexpr auto CLASS_TEST = ChromeLegacyIpc_MessageClass_CLASS_TEST;
    static constexpr auto CLASS_WORKER = ChromeLegacyIpc_MessageClass_CLASS_WORKER;
    static constexpr auto CLASS_NACL = ChromeLegacyIpc_MessageClass_CLASS_NACL;
    static constexpr auto CLASS_GPU_CHANNEL = ChromeLegacyIpc_MessageClass_CLASS_GPU_CHANNEL;
    static constexpr auto CLASS_MEDIA = ChromeLegacyIpc_MessageClass_CLASS_MEDIA;
    static constexpr auto CLASS_PPAPI = ChromeLegacyIpc_MessageClass_CLASS_PPAPI;
    static constexpr auto CLASS_CHROME = ChromeLegacyIpc_MessageClass_CLASS_CHROME;
    static constexpr auto CLASS_DRAG = ChromeLegacyIpc_MessageClass_CLASS_DRAG;
    static constexpr auto CLASS_PRINT = ChromeLegacyIpc_MessageClass_CLASS_PRINT;
    static constexpr auto CLASS_EXTENSION = ChromeLegacyIpc_MessageClass_CLASS_EXTENSION;
    static constexpr auto CLASS_TEXT_INPUT_CLIENT = ChromeLegacyIpc_MessageClass_CLASS_TEXT_INPUT_CLIENT;
    static constexpr auto CLASS_BLINK_TEST = ChromeLegacyIpc_MessageClass_CLASS_BLINK_TEST;
    static constexpr auto CLASS_ACCESSIBILITY = ChromeLegacyIpc_MessageClass_CLASS_ACCESSIBILITY;
    static constexpr auto CLASS_PRERENDER = ChromeLegacyIpc_MessageClass_CLASS_PRERENDER;
    static constexpr auto CLASS_CHROMOTING = ChromeLegacyIpc_MessageClass_CLASS_CHROMOTING;
    static constexpr auto CLASS_BROWSER_PLUGIN = ChromeLegacyIpc_MessageClass_CLASS_BROWSER_PLUGIN;
    static constexpr auto CLASS_ANDROID_WEB_VIEW = ChromeLegacyIpc_MessageClass_CLASS_ANDROID_WEB_VIEW;
    static constexpr auto CLASS_NACL_HOST = ChromeLegacyIpc_MessageClass_CLASS_NACL_HOST;
    static constexpr auto CLASS_ENCRYPTED_MEDIA = ChromeLegacyIpc_MessageClass_CLASS_ENCRYPTED_MEDIA;
    static constexpr auto CLASS_CAST = ChromeLegacyIpc_MessageClass_CLASS_CAST;
    static constexpr auto CLASS_GIN_JAVA_BRIDGE = ChromeLegacyIpc_MessageClass_CLASS_GIN_JAVA_BRIDGE;
    static constexpr auto CLASS_CHROME_UTILITY_PRINTING = ChromeLegacyIpc_MessageClass_CLASS_CHROME_UTILITY_PRINTING;
    static constexpr auto CLASS_OZONE_GPU = ChromeLegacyIpc_MessageClass_CLASS_OZONE_GPU;
    static constexpr auto CLASS_WEB_TEST = ChromeLegacyIpc_MessageClass_CLASS_WEB_TEST;
    static constexpr auto CLASS_NETWORK_HINTS = ChromeLegacyIpc_MessageClass_CLASS_NETWORK_HINTS;
    static constexpr auto CLASS_EXTENSIONS_GUEST_VIEW = ChromeLegacyIpc_MessageClass_CLASS_EXTENSIONS_GUEST_VIEW;
    static constexpr auto CLASS_GUEST_VIEW = ChromeLegacyIpc_MessageClass_CLASS_GUEST_VIEW;
    static constexpr auto CLASS_MEDIA_PLAYER_DELEGATE = ChromeLegacyIpc_MessageClass_CLASS_MEDIA_PLAYER_DELEGATE;
    static constexpr auto CLASS_EXTENSION_WORKER = ChromeLegacyIpc_MessageClass_CLASS_EXTENSION_WORKER;
    static constexpr auto CLASS_SUBRESOURCE_FILTER = ChromeLegacyIpc_MessageClass_CLASS_SUBRESOURCE_FILTER;
    static constexpr auto CLASS_UNFREEZABLE_FRAME = ChromeLegacyIpc_MessageClass_CLASS_UNFREEZABLE_FRAME;
    static constexpr auto MessageClass_MIN = ChromeLegacyIpc_MessageClass_CLASS_UNSPECIFIED;
    static constexpr auto MessageClass_MAX = ChromeLegacyIpc_MessageClass_CLASS_UNFREEZABLE_FRAME;
    enum FieldNumbers {
      kMessageClassFieldNumber = 1,
      kMessageLineFieldNumber = 2,
    };
  
    ChromeLegacyIpc();
    ~ChromeLegacyIpc() override;
    ChromeLegacyIpc(ChromeLegacyIpc&&) noexcept;
    ChromeLegacyIpc& operator=(ChromeLegacyIpc&&);
    ChromeLegacyIpc(const ChromeLegacyIpc&);
    ChromeLegacyIpc& operator=(const ChromeLegacyIpc&);
    bool operator==(const ChromeLegacyIpc&) const;
    bool operator!=(const ChromeLegacyIpc& other) const { return !(*this == other); }
  
    bool ParseFromArray(const void*, size_t) override;
    std::string SerializeAsString() const override;
    std::vector<uint8_t> SerializeAsArray() const override;
    void Serialize(::protozero::Message*) const;
  
    bool has_message_class() const { return _has_field_[1]; }
    ChromeLegacyIpc_MessageClass message_class() const { return message_class_; }
    void set_message_class(ChromeLegacyIpc_MessageClass value) { message_class_ = value; _has_field_.set(1); }
  
    bool has_message_line() const { return _has_field_[2]; }
    uint32_t message_line() const { return message_line_; }
    void set_message_line(uint32_t value) { message_line_ = value; _has_field_.set(2); }
  
   private:
    ChromeLegacyIpc_MessageClass message_class_{};
    uint32_t message_line_{};
  
    // Allows to preserve unknown protobuf fields for compatibility
    // with future versions of .proto files.
    std::string unknown_fields_;
  
    std::bitset<3> _has_field_{};
  };
  
  }  // namespace perfetto
  }  // namespace protos
  }  // namespace gen
  
  #endif  // PERFETTO_PROTOS_PROTOS_PERFETTO_TRACE_TRACK_EVENT_CHROME_LEGACY_IPC_PROTO_CPP_H_
  