// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: perf_data.proto

#ifndef PROTOBUF_perf_5fdata_2eproto__INCLUDED
#define PROTOBUF_perf_5fdata_2eproto__INCLUDED

#include <string>

#include <google/protobuf/stubs/common.h>

#if GOOGLE_PROTOBUF_VERSION < 2005000
#error This file was generated by a newer version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please update
#error your headers.
#endif
#if 2005000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please
#error regenerate this file with a newer version of protoc.
#endif

#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/message.h>
#include <google/protobuf/repeated_field.h>
#include <google/protobuf/extension_set.h>
#include <google/protobuf/unknown_field_set.h>
// @@protoc_insertion_point(includes)

namespace quipper {

// Internal implementation detail -- do not call these.
void  protobuf_AddDesc_perf_5fdata_2eproto();
void protobuf_AssignDesc_perf_5fdata_2eproto();
void protobuf_ShutdownFile_perf_5fdata_2eproto();

class PerfDataProto;
class PerfDataProto_PerfEventAttr;
class PerfDataProto_PerfFileAttr;
class PerfDataProto_PerfEventType;
class PerfDataProto_SampleInfo;
class PerfDataProto_CommEvent;
class PerfDataProto_MMapEvent;
class PerfDataProto_BranchStackEntry;
class PerfDataProto_SampleEvent;
class PerfDataProto_ForkEvent;
class PerfDataProto_LostEvent;
class PerfDataProto_ThrottleEvent;
class PerfDataProto_ReadEvent;
class PerfDataProto_EventHeader;
class PerfDataProto_PerfEvent;
class PerfDataProto_PerfEventStats;
class PerfDataProto_PerfUint32Metadata;
class PerfDataProto_PerfUint64Metadata;
class PerfDataProto_PerfTracingMetadata;
class PerfDataProto_PerfBuildID;
class PerfDataProto_PerfCPUTopologyMetadata;
class PerfDataProto_PerfNodeTopologyMetadata;
class PerfDataProto_StringMetadata;
class PerfDataProto_StringMetadata_StringAndMd5sumPrefix;

// ===================================================================

class PerfDataProto_PerfEventAttr : public ::google::protobuf::Message {
 public:
  PerfDataProto_PerfEventAttr();
  virtual ~PerfDataProto_PerfEventAttr();

  PerfDataProto_PerfEventAttr(const PerfDataProto_PerfEventAttr& from);

  inline PerfDataProto_PerfEventAttr& operator=(const PerfDataProto_PerfEventAttr& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const PerfDataProto_PerfEventAttr& default_instance();

  void Swap(PerfDataProto_PerfEventAttr* other);

  // implements Message ----------------------------------------------

  PerfDataProto_PerfEventAttr* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const PerfDataProto_PerfEventAttr& from);
  void MergeFrom(const PerfDataProto_PerfEventAttr& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:

  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional uint32 type = 1;
  inline bool has_type() const;
  inline void clear_type();
  static const int kTypeFieldNumber = 1;
  inline ::google::protobuf::uint32 type() const;
  inline void set_type(::google::protobuf::uint32 value);

  // optional uint32 size = 2;
  inline bool has_size() const;
  inline void clear_size();
  static const int kSizeFieldNumber = 2;
  inline ::google::protobuf::uint32 size() const;
  inline void set_size(::google::protobuf::uint32 value);

  // optional uint64 config = 3;
  inline bool has_config() const;
  inline void clear_config();
  static const int kConfigFieldNumber = 3;
  inline ::google::protobuf::uint64 config() const;
  inline void set_config(::google::protobuf::uint64 value);

  // optional uint64 sample_period = 4;
  inline bool has_sample_period() const;
  inline void clear_sample_period();
  static const int kSamplePeriodFieldNumber = 4;
  inline ::google::protobuf::uint64 sample_period() const;
  inline void set_sample_period(::google::protobuf::uint64 value);

  // optional uint64 sample_freq = 5;
  inline bool has_sample_freq() const;
  inline void clear_sample_freq();
  static const int kSampleFreqFieldNumber = 5;
  inline ::google::protobuf::uint64 sample_freq() const;
  inline void set_sample_freq(::google::protobuf::uint64 value);

  // optional uint64 sample_type = 6;
  inline bool has_sample_type() const;
  inline void clear_sample_type();
  static const int kSampleTypeFieldNumber = 6;
  inline ::google::protobuf::uint64 sample_type() const;
  inline void set_sample_type(::google::protobuf::uint64 value);

  // optional uint64 read_format = 7;
  inline bool has_read_format() const;
  inline void clear_read_format();
  static const int kReadFormatFieldNumber = 7;
  inline ::google::protobuf::uint64 read_format() const;
  inline void set_read_format(::google::protobuf::uint64 value);

  // optional bool disabled = 8;
  inline bool has_disabled() const;
  inline void clear_disabled();
  static const int kDisabledFieldNumber = 8;
  inline bool disabled() const;
  inline void set_disabled(bool value);

  // optional bool inherit = 9;
  inline bool has_inherit() const;
  inline void clear_inherit();
  static const int kInheritFieldNumber = 9;
  inline bool inherit() const;
  inline void set_inherit(bool value);

  // optional bool pinned = 10;
  inline bool has_pinned() const;
  inline void clear_pinned();
  static const int kPinnedFieldNumber = 10;
  inline bool pinned() const;
  inline void set_pinned(bool value);

  // optional bool exclusive = 11;
  inline bool has_exclusive() const;
  inline void clear_exclusive();
  static const int kExclusiveFieldNumber = 11;
  inline bool exclusive() const;
  inline void set_exclusive(bool value);

  // optional bool exclude_user = 12;
  inline bool has_exclude_user() const;
  inline void clear_exclude_user();
  static const int kExcludeUserFieldNumber = 12;
  inline bool exclude_user() const;
  inline void set_exclude_user(bool value);

  // optional bool exclude_kernel = 13;
  inline bool has_exclude_kernel() const;
  inline void clear_exclude_kernel();
  static const int kExcludeKernelFieldNumber = 13;
  inline bool exclude_kernel() const;
  inline void set_exclude_kernel(bool value);

  // optional bool exclude_hv = 14;
  inline bool has_exclude_hv() const;
  inline void clear_exclude_hv();
  static const int kExcludeHvFieldNumber = 14;
  inline bool exclude_hv() const;
  inline void set_exclude_hv(bool value);

  // optional bool exclude_idle = 15;
  inline bool has_exclude_idle() const;
  inline void clear_exclude_idle();
  static const int kExcludeIdleFieldNumber = 15;
  inline bool exclude_idle() const;
  inline void set_exclude_idle(bool value);

  // optional bool mmap = 16;
  inline bool has_mmap() const;
  inline void clear_mmap();
  static const int kMmapFieldNumber = 16;
  inline bool mmap() const;
  inline void set_mmap(bool value);

  // optional bool comm = 17;
  inline bool has_comm() const;
  inline void clear_comm();
  static const int kCommFieldNumber = 17;
  inline bool comm() const;
  inline void set_comm(bool value);

  // optional bool freq = 18;
  inline bool has_freq() const;
  inline void clear_freq();
  static const int kFreqFieldNumber = 18;
  inline bool freq() const;
  inline void set_freq(bool value);

  // optional bool inherit_stat = 19;
  inline bool has_inherit_stat() const;
  inline void clear_inherit_stat();
  static const int kInheritStatFieldNumber = 19;
  inline bool inherit_stat() const;
  inline void set_inherit_stat(bool value);

  // optional bool enable_on_exec = 20;
  inline bool has_enable_on_exec() const;
  inline void clear_enable_on_exec();
  static const int kEnableOnExecFieldNumber = 20;
  inline bool enable_on_exec() const;
  inline void set_enable_on_exec(bool value);

  // optional bool task = 21;
  inline bool has_task() const;
  inline void clear_task();
  static const int kTaskFieldNumber = 21;
  inline bool task() const;
  inline void set_task(bool value);

  // optional bool watermark = 22;
  inline bool has_watermark() const;
  inline void clear_watermark();
  static const int kWatermarkFieldNumber = 22;
  inline bool watermark() const;
  inline void set_watermark(bool value);

  // optional uint32 precise_ip = 23;
  inline bool has_precise_ip() const;
  inline void clear_precise_ip();
  static const int kPreciseIpFieldNumber = 23;
  inline ::google::protobuf::uint32 precise_ip() const;
  inline void set_precise_ip(::google::protobuf::uint32 value);

  // optional bool mmap_data = 24;
  inline bool has_mmap_data() const;
  inline void clear_mmap_data();
  static const int kMmapDataFieldNumber = 24;
  inline bool mmap_data() const;
  inline void set_mmap_data(bool value);

  // optional bool sample_id_all = 25;
  inline bool has_sample_id_all() const;
  inline void clear_sample_id_all();
  static const int kSampleIdAllFieldNumber = 25;
  inline bool sample_id_all() const;
  inline void set_sample_id_all(bool value);

  // optional bool exclude_host = 26;
  inline bool has_exclude_host() const;
  inline void clear_exclude_host();
  static const int kExcludeHostFieldNumber = 26;
  inline bool exclude_host() const;
  inline void set_exclude_host(bool value);

  // optional bool exclude_guest = 27;
  inline bool has_exclude_guest() const;
  inline void clear_exclude_guest();
  static const int kExcludeGuestFieldNumber = 27;
  inline bool exclude_guest() const;
  inline void set_exclude_guest(bool value);

  // optional bool exclude_callchain_kernel = 36;
  inline bool has_exclude_callchain_kernel() const;
  inline void clear_exclude_callchain_kernel();
  static const int kExcludeCallchainKernelFieldNumber = 36;
  inline bool exclude_callchain_kernel() const;
  inline void set_exclude_callchain_kernel(bool value);

  // optional bool exclude_callchain_user = 37;
  inline bool has_exclude_callchain_user() const;
  inline void clear_exclude_callchain_user();
  static const int kExcludeCallchainUserFieldNumber = 37;
  inline bool exclude_callchain_user() const;
  inline void set_exclude_callchain_user(bool value);

  // optional bool mmap2 = 38;
  inline bool has_mmap2() const;
  inline void clear_mmap2();
  static const int kMmap2FieldNumber = 38;
  inline bool mmap2() const;
  inline void set_mmap2(bool value);

  // optional bool comm_exec = 39;
  inline bool has_comm_exec() const;
  inline void clear_comm_exec();
  static const int kCommExecFieldNumber = 39;
  inline bool comm_exec() const;
  inline void set_comm_exec(bool value);

  // optional uint32 wakeup_events = 28;
  inline bool has_wakeup_events() const;
  inline void clear_wakeup_events();
  static const int kWakeupEventsFieldNumber = 28;
  inline ::google::protobuf::uint32 wakeup_events() const;
  inline void set_wakeup_events(::google::protobuf::uint32 value);

  // optional uint32 wakeup_watermark = 29;
  inline bool has_wakeup_watermark() const;
  inline void clear_wakeup_watermark();
  static const int kWakeupWatermarkFieldNumber = 29;
  inline ::google::protobuf::uint32 wakeup_watermark() const;
  inline void set_wakeup_watermark(::google::protobuf::uint32 value);

  // optional uint32 bp_type = 30;
  inline bool has_bp_type() const;
  inline void clear_bp_type();
  static const int kBpTypeFieldNumber = 30;
  inline ::google::protobuf::uint32 bp_type() const;
  inline void set_bp_type(::google::protobuf::uint32 value);

  // optional uint64 bp_addr = 31;
  inline bool has_bp_addr() const;
  inline void clear_bp_addr();
  static const int kBpAddrFieldNumber = 31;
  inline ::google::protobuf::uint64 bp_addr() const;
  inline void set_bp_addr(::google::protobuf::uint64 value);

  // optional uint64 config1 = 32;
  inline bool has_config1() const;
  inline void clear_config1();
  static const int kConfig1FieldNumber = 32;
  inline ::google::protobuf::uint64 config1() const;
  inline void set_config1(::google::protobuf::uint64 value);

  // optional uint64 bp_len = 33;
  inline bool has_bp_len() const;
  inline void clear_bp_len();
  static const int kBpLenFieldNumber = 33;
  inline ::google::protobuf::uint64 bp_len() const;
  inline void set_bp_len(::google::protobuf::uint64 value);

  // optional uint64 config2 = 34;
  inline bool has_config2() const;
  inline void clear_config2();
  static const int kConfig2FieldNumber = 34;
  inline ::google::protobuf::uint64 config2() const;
  inline void set_config2(::google::protobuf::uint64 value);

  // optional uint64 branch_sample_type = 35;
  inline bool has_branch_sample_type() const;
  inline void clear_branch_sample_type();
  static const int kBranchSampleTypeFieldNumber = 35;
  inline ::google::protobuf::uint64 branch_sample_type() const;
  inline void set_branch_sample_type(::google::protobuf::uint64 value);

  // optional uint64 sample_regs_user = 40;
  inline bool has_sample_regs_user() const;
  inline void clear_sample_regs_user();
  static const int kSampleRegsUserFieldNumber = 40;
  inline ::google::protobuf::uint64 sample_regs_user() const;
  inline void set_sample_regs_user(::google::protobuf::uint64 value);

  // optional uint32 sample_stack_user = 41;
  inline bool has_sample_stack_user() const;
  inline void clear_sample_stack_user();
  static const int kSampleStackUserFieldNumber = 41;
  inline ::google::protobuf::uint32 sample_stack_user() const;
  inline void set_sample_stack_user(::google::protobuf::uint32 value);

  // @@protoc_insertion_point(class_scope:quipper.PerfDataProto.PerfEventAttr)
 private:
  inline void set_has_type();
  inline void clear_has_type();
  inline void set_has_size();
  inline void clear_has_size();
  inline void set_has_config();
  inline void clear_has_config();
  inline void set_has_sample_period();
  inline void clear_has_sample_period();
  inline void set_has_sample_freq();
  inline void clear_has_sample_freq();
  inline void set_has_sample_type();
  inline void clear_has_sample_type();
  inline void set_has_read_format();
  inline void clear_has_read_format();
  inline void set_has_disabled();
  inline void clear_has_disabled();
  inline void set_has_inherit();
  inline void clear_has_inherit();
  inline void set_has_pinned();
  inline void clear_has_pinned();
  inline void set_has_exclusive();
  inline void clear_has_exclusive();
  inline void set_has_exclude_user();
  inline void clear_has_exclude_user();
  inline void set_has_exclude_kernel();
  inline void clear_has_exclude_kernel();
  inline void set_has_exclude_hv();
  inline void clear_has_exclude_hv();
  inline void set_has_exclude_idle();
  inline void clear_has_exclude_idle();
  inline void set_has_mmap();
  inline void clear_has_mmap();
  inline void set_has_comm();
  inline void clear_has_comm();
  inline void set_has_freq();
  inline void clear_has_freq();
  inline void set_has_inherit_stat();
  inline void clear_has_inherit_stat();
  inline void set_has_enable_on_exec();
  inline void clear_has_enable_on_exec();
  inline void set_has_task();
  inline void clear_has_task();
  inline void set_has_watermark();
  inline void clear_has_watermark();
  inline void set_has_precise_ip();
  inline void clear_has_precise_ip();
  inline void set_has_mmap_data();
  inline void clear_has_mmap_data();
  inline void set_has_sample_id_all();
  inline void clear_has_sample_id_all();
  inline void set_has_exclude_host();
  inline void clear_has_exclude_host();
  inline void set_has_exclude_guest();
  inline void clear_has_exclude_guest();
  inline void set_has_exclude_callchain_kernel();
  inline void clear_has_exclude_callchain_kernel();
  inline void set_has_exclude_callchain_user();
  inline void clear_has_exclude_callchain_user();
  inline void set_has_mmap2();
  inline void clear_has_mmap2();
  inline void set_has_comm_exec();
  inline void clear_has_comm_exec();
  inline void set_has_wakeup_events();
  inline void clear_has_wakeup_events();
  inline void set_has_wakeup_watermark();
  inline void clear_has_wakeup_watermark();
  inline void set_has_bp_type();
  inline void clear_has_bp_type();
  inline void set_has_bp_addr();
  inline void clear_has_bp_addr();
  inline void set_has_config1();
  inline void clear_has_config1();
  inline void set_has_bp_len();
  inline void clear_has_bp_len();
  inline void set_has_config2();
  inline void clear_has_config2();
  inline void set_has_branch_sample_type();
  inline void clear_has_branch_sample_type();
  inline void set_has_sample_regs_user();
  inline void clear_has_sample_regs_user();
  inline void set_has_sample_stack_user();
  inline void clear_has_sample_stack_user();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 type_;
  ::google::protobuf::uint32 size_;
  ::google::protobuf::uint64 config_;
  ::google::protobuf::uint64 sample_period_;
  ::google::protobuf::uint64 sample_freq_;
  ::google::protobuf::uint64 sample_type_;
  ::google::protobuf::uint64 read_format_;
  bool disabled_;
  bool inherit_;
  bool pinned_;
  bool exclusive_;
  bool exclude_user_;
  bool exclude_kernel_;
  bool exclude_hv_;
  bool exclude_idle_;
  bool mmap_;
  bool comm_;
  bool freq_;
  bool inherit_stat_;
  bool enable_on_exec_;
  bool task_;
  bool watermark_;
  bool mmap_data_;
  ::google::protobuf::uint32 precise_ip_;
  bool sample_id_all_;
  bool exclude_host_;
  bool exclude_guest_;
  bool exclude_callchain_kernel_;
  bool exclude_callchain_user_;
  bool mmap2_;
  bool comm_exec_;
  ::google::protobuf::uint32 wakeup_events_;
  ::google::protobuf::uint32 wakeup_watermark_;
  ::google::protobuf::uint32 bp_type_;
  ::google::protobuf::uint64 bp_addr_;
  ::google::protobuf::uint64 config1_;
  ::google::protobuf::uint64 bp_len_;
  ::google::protobuf::uint64 config2_;
  ::google::protobuf::uint64 branch_sample_type_;
  ::google::protobuf::uint64 sample_regs_user_;
  ::google::protobuf::uint32 sample_stack_user_;

  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(41 + 31) / 32];

  friend void  protobuf_AddDesc_perf_5fdata_2eproto();
  friend void protobuf_AssignDesc_perf_5fdata_2eproto();
  friend void protobuf_ShutdownFile_perf_5fdata_2eproto();

  void InitAsDefaultInstance();
  static PerfDataProto_PerfEventAttr* default_instance_;
};
// -------------------------------------------------------------------

class PerfDataProto_PerfFileAttr : public ::google::protobuf::Message {
 public:
  PerfDataProto_PerfFileAttr();
  virtual ~PerfDataProto_PerfFileAttr();

  PerfDataProto_PerfFileAttr(const PerfDataProto_PerfFileAttr& from);

  inline PerfDataProto_PerfFileAttr& operator=(const PerfDataProto_PerfFileAttr& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const PerfDataProto_PerfFileAttr& default_instance();

  void Swap(PerfDataProto_PerfFileAttr* other);

  // implements Message ----------------------------------------------

  PerfDataProto_PerfFileAttr* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const PerfDataProto_PerfFileAttr& from);
  void MergeFrom(const PerfDataProto_PerfFileAttr& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:

  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional .quipper.PerfDataProto.PerfEventAttr attr = 1;
  inline bool has_attr() const;
  inline void clear_attr();
  static const int kAttrFieldNumber = 1;
  inline const ::quipper::PerfDataProto_PerfEventAttr& attr() const;
  inline ::quipper::PerfDataProto_PerfEventAttr* mutable_attr();
  inline ::quipper::PerfDataProto_PerfEventAttr* release_attr();
  inline void set_allocated_attr(::quipper::PerfDataProto_PerfEventAttr* attr);

  // repeated uint64 ids = 2;
  inline int ids_size() const;
  inline void clear_ids();
  static const int kIdsFieldNumber = 2;
  inline ::google::protobuf::uint64 ids(int index) const;
  inline void set_ids(int index, ::google::protobuf::uint64 value);
  inline void add_ids(::google::protobuf::uint64 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
      ids() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
      mutable_ids();

  // @@protoc_insertion_point(class_scope:quipper.PerfDataProto.PerfFileAttr)
 private:
  inline void set_has_attr();
  inline void clear_has_attr();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::quipper::PerfDataProto_PerfEventAttr* attr_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint64 > ids_;

  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(2 + 31) / 32];

  friend void  protobuf_AddDesc_perf_5fdata_2eproto();
  friend void protobuf_AssignDesc_perf_5fdata_2eproto();
  friend void protobuf_ShutdownFile_perf_5fdata_2eproto();

  void InitAsDefaultInstance();
  static PerfDataProto_PerfFileAttr* default_instance_;
};
// -------------------------------------------------------------------

class PerfDataProto_PerfEventType : public ::google::protobuf::Message {
 public:
  PerfDataProto_PerfEventType();
  virtual ~PerfDataProto_PerfEventType();

  PerfDataProto_PerfEventType(const PerfDataProto_PerfEventType& from);

  inline PerfDataProto_PerfEventType& operator=(const PerfDataProto_PerfEventType& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const PerfDataProto_PerfEventType& default_instance();

  void Swap(PerfDataProto_PerfEventType* other);

  // implements Message ----------------------------------------------

  PerfDataProto_PerfEventType* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const PerfDataProto_PerfEventType& from);
  void MergeFrom(const PerfDataProto_PerfEventType& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:

  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional uint64 id = 1;
  inline bool has_id() const;
  inline void clear_id();
  static const int kIdFieldNumber = 1;
  inline ::google::protobuf::uint64 id() const;
  inline void set_id(::google::protobuf::uint64 value);

  // optional string name = 2;
  inline bool has_name() const;
  inline void clear_name();
  static const int kNameFieldNumber = 2;
  inline const ::std::string& name() const;
  inline void set_name(const ::std::string& value);
  inline void set_name(const char* value);
  inline void set_name(const char* value, size_t size);
  inline ::std::string* mutable_name();
  inline ::std::string* release_name();
  inline void set_allocated_name(::std::string* name);

  // optional uint64 name_md5_prefix = 3;
  inline bool has_name_md5_prefix() const;
  inline void clear_name_md5_prefix();
  static const int kNameMd5PrefixFieldNumber = 3;
  inline ::google::protobuf::uint64 name_md5_prefix() const;
  inline void set_name_md5_prefix(::google::protobuf::uint64 value);

  // @@protoc_insertion_point(class_scope:quipper.PerfDataProto.PerfEventType)
 private:
  inline void set_has_id();
  inline void clear_has_id();
  inline void set_has_name();
  inline void clear_has_name();
  inline void set_has_name_md5_prefix();
  inline void clear_has_name_md5_prefix();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint64 id_;
  ::std::string* name_;
  ::google::protobuf::uint64 name_md5_prefix_;

  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(3 + 31) / 32];

  friend void  protobuf_AddDesc_perf_5fdata_2eproto();
  friend void protobuf_AssignDesc_perf_5fdata_2eproto();
  friend void protobuf_ShutdownFile_perf_5fdata_2eproto();

  void InitAsDefaultInstance();
  static PerfDataProto_PerfEventType* default_instance_;
};
// -------------------------------------------------------------------

class PerfDataProto_SampleInfo : public ::google::protobuf::Message {
 public:
  PerfDataProto_SampleInfo();
  virtual ~PerfDataProto_SampleInfo();

  PerfDataProto_SampleInfo(const PerfDataProto_SampleInfo& from);

  inline PerfDataProto_SampleInfo& operator=(const PerfDataProto_SampleInfo& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const PerfDataProto_SampleInfo& default_instance();

  void Swap(PerfDataProto_SampleInfo* other);

  // implements Message ----------------------------------------------

  PerfDataProto_SampleInfo* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const PerfDataProto_SampleInfo& from);
  void MergeFrom(const PerfDataProto_SampleInfo& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:

  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional uint32 pid = 1;
  inline bool has_pid() const;
  inline void clear_pid();
  static const int kPidFieldNumber = 1;
  inline ::google::protobuf::uint32 pid() const;
  inline void set_pid(::google::protobuf::uint32 value);

  // optional uint32 tid = 2;
  inline bool has_tid() const;
  inline void clear_tid();
  static const int kTidFieldNumber = 2;
  inline ::google::protobuf::uint32 tid() const;
  inline void set_tid(::google::protobuf::uint32 value);

  // optional uint64 sample_time_ns = 3;
  inline bool has_sample_time_ns() const;
  inline void clear_sample_time_ns();
  static const int kSampleTimeNsFieldNumber = 3;
  inline ::google::protobuf::uint64 sample_time_ns() const;
  inline void set_sample_time_ns(::google::protobuf::uint64 value);

  // optional uint64 id = 4;
  inline bool has_id() const;
  inline void clear_id();
  static const int kIdFieldNumber = 4;
  inline ::google::protobuf::uint64 id() const;
  inline void set_id(::google::protobuf::uint64 value);

  // optional uint32 cpu = 5;
  inline bool has_cpu() const;
  inline void clear_cpu();
  static const int kCpuFieldNumber = 5;
  inline ::google::protobuf::uint32 cpu() const;
  inline void set_cpu(::google::protobuf::uint32 value);

  // @@protoc_insertion_point(class_scope:quipper.PerfDataProto.SampleInfo)
 private:
  inline void set_has_pid();
  inline void clear_has_pid();
  inline void set_has_tid();
  inline void clear_has_tid();
  inline void set_has_sample_time_ns();
  inline void clear_has_sample_time_ns();
  inline void set_has_id();
  inline void clear_has_id();
  inline void set_has_cpu();
  inline void clear_has_cpu();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 pid_;
  ::google::protobuf::uint32 tid_;
  ::google::protobuf::uint64 sample_time_ns_;
  ::google::protobuf::uint64 id_;
  ::google::protobuf::uint32 cpu_;

  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(5 + 31) / 32];

  friend void  protobuf_AddDesc_perf_5fdata_2eproto();
  friend void protobuf_AssignDesc_perf_5fdata_2eproto();
  friend void protobuf_ShutdownFile_perf_5fdata_2eproto();

  void InitAsDefaultInstance();
  static PerfDataProto_SampleInfo* default_instance_;
};
// -------------------------------------------------------------------

class PerfDataProto_CommEvent : public ::google::protobuf::Message {
 public:
  PerfDataProto_CommEvent();
  virtual ~PerfDataProto_CommEvent();

  PerfDataProto_CommEvent(const PerfDataProto_CommEvent& from);

  inline PerfDataProto_CommEvent& operator=(const PerfDataProto_CommEvent& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const PerfDataProto_CommEvent& default_instance();

  void Swap(PerfDataProto_CommEvent* other);

  // implements Message ----------------------------------------------

  PerfDataProto_CommEvent* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const PerfDataProto_CommEvent& from);
  void MergeFrom(const PerfDataProto_CommEvent& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:

  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional uint32 pid = 1;
  inline bool has_pid() const;
  inline void clear_pid();
  static const int kPidFieldNumber = 1;
  inline ::google::protobuf::uint32 pid() const;
  inline void set_pid(::google::protobuf::uint32 value);

  // optional uint32 tid = 2;
  inline bool has_tid() const;
  inline void clear_tid();
  static const int kTidFieldNumber = 2;
  inline ::google::protobuf::uint32 tid() const;
  inline void set_tid(::google::protobuf::uint32 value);

  // optional string comm = 3;
  inline bool has_comm() const;
  inline void clear_comm();
  static const int kCommFieldNumber = 3;
  inline const ::std::string& comm() const;
  inline void set_comm(const ::std::string& value);
  inline void set_comm(const char* value);
  inline void set_comm(const char* value, size_t size);
  inline ::std::string* mutable_comm();
  inline ::std::string* release_comm();
  inline void set_allocated_comm(::std::string* comm);

  // optional uint64 comm_md5_prefix = 4;
  inline bool has_comm_md5_prefix() const;
  inline void clear_comm_md5_prefix();
  static const int kCommMd5PrefixFieldNumber = 4;
  inline ::google::protobuf::uint64 comm_md5_prefix() const;
  inline void set_comm_md5_prefix(::google::protobuf::uint64 value);

  // optional uint64 sample_time = 5 [deprecated = true];
  inline bool has_sample_time() const PROTOBUF_DEPRECATED;
  inline void clear_sample_time() PROTOBUF_DEPRECATED;
  static const int kSampleTimeFieldNumber = 5;
  inline ::google::protobuf::uint64 sample_time() const PROTOBUF_DEPRECATED;
  inline void set_sample_time(::google::protobuf::uint64 value) PROTOBUF_DEPRECATED;

  // optional .quipper.PerfDataProto.SampleInfo sample_info = 6;
  inline bool has_sample_info() const;
  inline void clear_sample_info();
  static const int kSampleInfoFieldNumber = 6;
  inline const ::quipper::PerfDataProto_SampleInfo& sample_info() const;
  inline ::quipper::PerfDataProto_SampleInfo* mutable_sample_info();
  inline ::quipper::PerfDataProto_SampleInfo* release_sample_info();
  inline void set_allocated_sample_info(::quipper::PerfDataProto_SampleInfo* sample_info);

  // @@protoc_insertion_point(class_scope:quipper.PerfDataProto.CommEvent)
 private:
  inline void set_has_pid();
  inline void clear_has_pid();
  inline void set_has_tid();
  inline void clear_has_tid();
  inline void set_has_comm();
  inline void clear_has_comm();
  inline void set_has_comm_md5_prefix();
  inline void clear_has_comm_md5_prefix();
  inline void set_has_sample_time();
  inline void clear_has_sample_time();
  inline void set_has_sample_info();
  inline void clear_has_sample_info();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 pid_;
  ::google::protobuf::uint32 tid_;
  ::std::string* comm_;
  ::google::protobuf::uint64 comm_md5_prefix_;
  ::google::protobuf::uint64 sample_time_;
  ::quipper::PerfDataProto_SampleInfo* sample_info_;

  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(6 + 31) / 32];

  friend void  protobuf_AddDesc_perf_5fdata_2eproto();
  friend void protobuf_AssignDesc_perf_5fdata_2eproto();
  friend void protobuf_ShutdownFile_perf_5fdata_2eproto();

  void InitAsDefaultInstance();
  static PerfDataProto_CommEvent* default_instance_;
};
// -------------------------------------------------------------------

class PerfDataProto_MMapEvent : public ::google::protobuf::Message {
 public:
  PerfDataProto_MMapEvent();
  virtual ~PerfDataProto_MMapEvent();

  PerfDataProto_MMapEvent(const PerfDataProto_MMapEvent& from);

  inline PerfDataProto_MMapEvent& operator=(const PerfDataProto_MMapEvent& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const PerfDataProto_MMapEvent& default_instance();

  void Swap(PerfDataProto_MMapEvent* other);

  // implements Message ----------------------------------------------

  PerfDataProto_MMapEvent* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const PerfDataProto_MMapEvent& from);
  void MergeFrom(const PerfDataProto_MMapEvent& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:

  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional uint32 pid = 1;
  inline bool has_pid() const;
  inline void clear_pid();
  static const int kPidFieldNumber = 1;
  inline ::google::protobuf::uint32 pid() const;
  inline void set_pid(::google::protobuf::uint32 value);

  // optional uint32 tid = 2;
  inline bool has_tid() const;
  inline void clear_tid();
  static const int kTidFieldNumber = 2;
  inline ::google::protobuf::uint32 tid() const;
  inline void set_tid(::google::protobuf::uint32 value);

  // optional uint64 start = 3;
  inline bool has_start() const;
  inline void clear_start();
  static const int kStartFieldNumber = 3;
  inline ::google::protobuf::uint64 start() const;
  inline void set_start(::google::protobuf::uint64 value);

  // optional uint64 len = 4;
  inline bool has_len() const;
  inline void clear_len();
  static const int kLenFieldNumber = 4;
  inline ::google::protobuf::uint64 len() const;
  inline void set_len(::google::protobuf::uint64 value);

  // optional uint64 pgoff = 5;
  inline bool has_pgoff() const;
  inline void clear_pgoff();
  static const int kPgoffFieldNumber = 5;
  inline ::google::protobuf::uint64 pgoff() const;
  inline void set_pgoff(::google::protobuf::uint64 value);

  // optional uint32 maj = 9;
  inline bool has_maj() const;
  inline void clear_maj();
  static const int kMajFieldNumber = 9;
  inline ::google::protobuf::uint32 maj() const;
  inline void set_maj(::google::protobuf::uint32 value);

  // optional uint32 min = 10;
  inline bool has_min() const;
  inline void clear_min();
  static const int kMinFieldNumber = 10;
  inline ::google::protobuf::uint32 min() const;
  inline void set_min(::google::protobuf::uint32 value);

  // optional uint64 ino = 11;
  inline bool has_ino() const;
  inline void clear_ino();
  static const int kInoFieldNumber = 11;
  inline ::google::protobuf::uint64 ino() const;
  inline void set_ino(::google::protobuf::uint64 value);

  // optional uint64 ino_generation = 12;
  inline bool has_ino_generation() const;
  inline void clear_ino_generation();
  static const int kInoGenerationFieldNumber = 12;
  inline ::google::protobuf::uint64 ino_generation() const;
  inline void set_ino_generation(::google::protobuf::uint64 value);

  // optional uint32 prot = 13;
  inline bool has_prot() const;
  inline void clear_prot();
  static const int kProtFieldNumber = 13;
  inline ::google::protobuf::uint32 prot() const;
  inline void set_prot(::google::protobuf::uint32 value);

  // optional uint32 flags = 14;
  inline bool has_flags() const;
  inline void clear_flags();
  static const int kFlagsFieldNumber = 14;
  inline ::google::protobuf::uint32 flags() const;
  inline void set_flags(::google::protobuf::uint32 value);

  // optional string filename = 6;
  inline bool has_filename() const;
  inline void clear_filename();
  static const int kFilenameFieldNumber = 6;
  inline const ::std::string& filename() const;
  inline void set_filename(const ::std::string& value);
  inline void set_filename(const char* value);
  inline void set_filename(const char* value, size_t size);
  inline ::std::string* mutable_filename();
  inline ::std::string* release_filename();
  inline void set_allocated_filename(::std::string* filename);

  // optional uint64 filename_md5_prefix = 7;
  inline bool has_filename_md5_prefix() const;
  inline void clear_filename_md5_prefix();
  static const int kFilenameMd5PrefixFieldNumber = 7;
  inline ::google::protobuf::uint64 filename_md5_prefix() const;
  inline void set_filename_md5_prefix(::google::protobuf::uint64 value);

  // optional .quipper.PerfDataProto.SampleInfo sample_info = 8;
  inline bool has_sample_info() const;
  inline void clear_sample_info();
  static const int kSampleInfoFieldNumber = 8;
  inline const ::quipper::PerfDataProto_SampleInfo& sample_info() const;
  inline ::quipper::PerfDataProto_SampleInfo* mutable_sample_info();
  inline ::quipper::PerfDataProto_SampleInfo* release_sample_info();
  inline void set_allocated_sample_info(::quipper::PerfDataProto_SampleInfo* sample_info);

  // @@protoc_insertion_point(class_scope:quipper.PerfDataProto.MMapEvent)
 private:
  inline void set_has_pid();
  inline void clear_has_pid();
  inline void set_has_tid();
  inline void clear_has_tid();
  inline void set_has_start();
  inline void clear_has_start();
  inline void set_has_len();
  inline void clear_has_len();
  inline void set_has_pgoff();
  inline void clear_has_pgoff();
  inline void set_has_maj();
  inline void clear_has_maj();
  inline void set_has_min();
  inline void clear_has_min();
  inline void set_has_ino();
  inline void clear_has_ino();
  inline void set_has_ino_generation();
  inline void clear_has_ino_generation();
  inline void set_has_prot();
  inline void clear_has_prot();
  inline void set_has_flags();
  inline void clear_has_flags();
  inline void set_has_filename();
  inline void clear_has_filename();
  inline void set_has_filename_md5_prefix();
  inline void clear_has_filename_md5_prefix();
  inline void set_has_sample_info();
  inline void clear_has_sample_info();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 pid_;
  ::google::protobuf::uint32 tid_;
  ::google::protobuf::uint64 start_;
  ::google::protobuf::uint64 len_;
  ::google::protobuf::uint64 pgoff_;
  ::google::protobuf::uint32 maj_;
  ::google::protobuf::uint32 min_;
  ::google::protobuf::uint64 ino_;
  ::google::protobuf::uint64 ino_generation_;
  ::google::protobuf::uint32 prot_;
  ::google::protobuf::uint32 flags_;
  ::std::string* filename_;
  ::google::protobuf::uint64 filename_md5_prefix_;
  ::quipper::PerfDataProto_SampleInfo* sample_info_;

  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(14 + 31) / 32];

  friend void  protobuf_AddDesc_perf_5fdata_2eproto();
  friend void protobuf_AssignDesc_perf_5fdata_2eproto();
  friend void protobuf_ShutdownFile_perf_5fdata_2eproto();

  void InitAsDefaultInstance();
  static PerfDataProto_MMapEvent* default_instance_;
};
// -------------------------------------------------------------------

class PerfDataProto_BranchStackEntry : public ::google::protobuf::Message {
 public:
  PerfDataProto_BranchStackEntry();
  virtual ~PerfDataProto_BranchStackEntry();

  PerfDataProto_BranchStackEntry(const PerfDataProto_BranchStackEntry& from);

  inline PerfDataProto_BranchStackEntry& operator=(const PerfDataProto_BranchStackEntry& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const PerfDataProto_BranchStackEntry& default_instance();

  void Swap(PerfDataProto_BranchStackEntry* other);

  // implements Message ----------------------------------------------

  PerfDataProto_BranchStackEntry* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const PerfDataProto_BranchStackEntry& from);
  void MergeFrom(const PerfDataProto_BranchStackEntry& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:

  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional uint64 from_ip = 1;
  inline bool has_from_ip() const;
  inline void clear_from_ip();
  static const int kFromIpFieldNumber = 1;
  inline ::google::protobuf::uint64 from_ip() const;
  inline void set_from_ip(::google::protobuf::uint64 value);

  // optional uint64 to_ip = 2;
  inline bool has_to_ip() const;
  inline void clear_to_ip();
  static const int kToIpFieldNumber = 2;
  inline ::google::protobuf::uint64 to_ip() const;
  inline void set_to_ip(::google::protobuf::uint64 value);

  // optional bool mispredicted = 3;
  inline bool has_mispredicted() const;
  inline void clear_mispredicted();
  static const int kMispredictedFieldNumber = 3;
  inline bool mispredicted() const;
  inline void set_mispredicted(bool value);

  // @@protoc_insertion_point(class_scope:quipper.PerfDataProto.BranchStackEntry)
 private:
  inline void set_has_from_ip();
  inline void clear_has_from_ip();
  inline void set_has_to_ip();
  inline void clear_has_to_ip();
  inline void set_has_mispredicted();
  inline void clear_has_mispredicted();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint64 from_ip_;
  ::google::protobuf::uint64 to_ip_;
  bool mispredicted_;

  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(3 + 31) / 32];

  friend void  protobuf_AddDesc_perf_5fdata_2eproto();
  friend void protobuf_AssignDesc_perf_5fdata_2eproto();
  friend void protobuf_ShutdownFile_perf_5fdata_2eproto();

  void InitAsDefaultInstance();
  static PerfDataProto_BranchStackEntry* default_instance_;
};
// -------------------------------------------------------------------

class PerfDataProto_SampleEvent : public ::google::protobuf::Message {
 public:
  PerfDataProto_SampleEvent();
  virtual ~PerfDataProto_SampleEvent();

  PerfDataProto_SampleEvent(const PerfDataProto_SampleEvent& from);

  inline PerfDataProto_SampleEvent& operator=(const PerfDataProto_SampleEvent& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const PerfDataProto_SampleEvent& default_instance();

  void Swap(PerfDataProto_SampleEvent* other);

  // implements Message ----------------------------------------------

  PerfDataProto_SampleEvent* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const PerfDataProto_SampleEvent& from);
  void MergeFrom(const PerfDataProto_SampleEvent& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:

  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional uint64 ip = 1;
  inline bool has_ip() const;
  inline void clear_ip();
  static const int kIpFieldNumber = 1;
  inline ::google::protobuf::uint64 ip() const;
  inline void set_ip(::google::protobuf::uint64 value);

  // optional uint32 pid = 2;
  inline bool has_pid() const;
  inline void clear_pid();
  static const int kPidFieldNumber = 2;
  inline ::google::protobuf::uint32 pid() const;
  inline void set_pid(::google::protobuf::uint32 value);

  // optional uint32 tid = 3;
  inline bool has_tid() const;
  inline void clear_tid();
  static const int kTidFieldNumber = 3;
  inline ::google::protobuf::uint32 tid() const;
  inline void set_tid(::google::protobuf::uint32 value);

  // optional uint64 sample_time_ns = 4;
  inline bool has_sample_time_ns() const;
  inline void clear_sample_time_ns();
  static const int kSampleTimeNsFieldNumber = 4;
  inline ::google::protobuf::uint64 sample_time_ns() const;
  inline void set_sample_time_ns(::google::protobuf::uint64 value);

  // optional uint64 addr = 5;
  inline bool has_addr() const;
  inline void clear_addr();
  static const int kAddrFieldNumber = 5;
  inline ::google::protobuf::uint64 addr() const;
  inline void set_addr(::google::protobuf::uint64 value);

  // optional uint64 id = 6;
  inline bool has_id() const;
  inline void clear_id();
  static const int kIdFieldNumber = 6;
  inline ::google::protobuf::uint64 id() const;
  inline void set_id(::google::protobuf::uint64 value);

  // optional uint64 stream_id = 7;
  inline bool has_stream_id() const;
  inline void clear_stream_id();
  static const int kStreamIdFieldNumber = 7;
  inline ::google::protobuf::uint64 stream_id() const;
  inline void set_stream_id(::google::protobuf::uint64 value);

  // optional uint64 period = 8;
  inline bool has_period() const;
  inline void clear_period();
  static const int kPeriodFieldNumber = 8;
  inline ::google::protobuf::uint64 period() const;
  inline void set_period(::google::protobuf::uint64 value);

  // optional uint32 cpu = 9;
  inline bool has_cpu() const;
  inline void clear_cpu();
  static const int kCpuFieldNumber = 9;
  inline ::google::protobuf::uint32 cpu() const;
  inline void set_cpu(::google::protobuf::uint32 value);

  // optional uint32 raw_size = 10;
  inline bool has_raw_size() const;
  inline void clear_raw_size();
  static const int kRawSizeFieldNumber = 10;
  inline ::google::protobuf::uint32 raw_size() const;
  inline void set_raw_size(::google::protobuf::uint32 value);

  // repeated uint64 callchain = 11;
  inline int callchain_size() const;
  inline void clear_callchain();
  static const int kCallchainFieldNumber = 11;
  inline ::google::protobuf::uint64 callchain(int index) const;
  inline void set_callchain(int index, ::google::protobuf::uint64 value);
  inline void add_callchain(::google::protobuf::uint64 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
      callchain() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
      mutable_callchain();

  // repeated .quipper.PerfDataProto.BranchStackEntry branch_stack = 12;
  inline int branch_stack_size() const;
  inline void clear_branch_stack();
  static const int kBranchStackFieldNumber = 12;
  inline const ::quipper::PerfDataProto_BranchStackEntry& branch_stack(int index) const;
  inline ::quipper::PerfDataProto_BranchStackEntry* mutable_branch_stack(int index);
  inline ::quipper::PerfDataProto_BranchStackEntry* add_branch_stack();
  inline const ::google::protobuf::RepeatedPtrField< ::quipper::PerfDataProto_BranchStackEntry >&
      branch_stack() const;
  inline ::google::protobuf::RepeatedPtrField< ::quipper::PerfDataProto_BranchStackEntry >*
      mutable_branch_stack();

  // @@protoc_insertion_point(class_scope:quipper.PerfDataProto.SampleEvent)
 private:
  inline void set_has_ip();
  inline void clear_has_ip();
  inline void set_has_pid();
  inline void clear_has_pid();
  inline void set_has_tid();
  inline void clear_has_tid();
  inline void set_has_sample_time_ns();
  inline void clear_has_sample_time_ns();
  inline void set_has_addr();
  inline void clear_has_addr();
  inline void set_has_id();
  inline void clear_has_id();
  inline void set_has_stream_id();
  inline void clear_has_stream_id();
  inline void set_has_period();
  inline void clear_has_period();
  inline void set_has_cpu();
  inline void clear_has_cpu();
  inline void set_has_raw_size();
  inline void clear_has_raw_size();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint64 ip_;
  ::google::protobuf::uint32 pid_;
  ::google::protobuf::uint32 tid_;
  ::google::protobuf::uint64 sample_time_ns_;
  ::google::protobuf::uint64 addr_;
  ::google::protobuf::uint64 id_;
  ::google::protobuf::uint64 stream_id_;
  ::google::protobuf::uint64 period_;
  ::google::protobuf::uint32 cpu_;
  ::google::protobuf::uint32 raw_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint64 > callchain_;
  ::google::protobuf::RepeatedPtrField< ::quipper::PerfDataProto_BranchStackEntry > branch_stack_;

  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(12 + 31) / 32];

  friend void  protobuf_AddDesc_perf_5fdata_2eproto();
  friend void protobuf_AssignDesc_perf_5fdata_2eproto();
  friend void protobuf_ShutdownFile_perf_5fdata_2eproto();

  void InitAsDefaultInstance();
  static PerfDataProto_SampleEvent* default_instance_;
};
// -------------------------------------------------------------------

class PerfDataProto_ForkEvent : public ::google::protobuf::Message {
 public:
  PerfDataProto_ForkEvent();
  virtual ~PerfDataProto_ForkEvent();

  PerfDataProto_ForkEvent(const PerfDataProto_ForkEvent& from);

  inline PerfDataProto_ForkEvent& operator=(const PerfDataProto_ForkEvent& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const PerfDataProto_ForkEvent& default_instance();

  void Swap(PerfDataProto_ForkEvent* other);

  // implements Message ----------------------------------------------

  PerfDataProto_ForkEvent* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const PerfDataProto_ForkEvent& from);
  void MergeFrom(const PerfDataProto_ForkEvent& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:

  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional uint32 pid = 1;
  inline bool has_pid() const;
  inline void clear_pid();
  static const int kPidFieldNumber = 1;
  inline ::google::protobuf::uint32 pid() const;
  inline void set_pid(::google::protobuf::uint32 value);

  // optional uint32 ppid = 2;
  inline bool has_ppid() const;
  inline void clear_ppid();
  static const int kPpidFieldNumber = 2;
  inline ::google::protobuf::uint32 ppid() const;
  inline void set_ppid(::google::protobuf::uint32 value);

  // optional uint32 tid = 3;
  inline bool has_tid() const;
  inline void clear_tid();
  static const int kTidFieldNumber = 3;
  inline ::google::protobuf::uint32 tid() const;
  inline void set_tid(::google::protobuf::uint32 value);

  // optional uint32 ptid = 4;
  inline bool has_ptid() const;
  inline void clear_ptid();
  static const int kPtidFieldNumber = 4;
  inline ::google::protobuf::uint32 ptid() const;
  inline void set_ptid(::google::protobuf::uint32 value);

  // optional uint64 fork_time_ns = 5;
  inline bool has_fork_time_ns() const;
  inline void clear_fork_time_ns();
  static const int kForkTimeNsFieldNumber = 5;
  inline ::google::protobuf::uint64 fork_time_ns() const;
  inline void set_fork_time_ns(::google::protobuf::uint64 value);

  // optional .quipper.PerfDataProto.SampleInfo sample_info = 11;
  inline bool has_sample_info() const;
  inline void clear_sample_info();
  static const int kSampleInfoFieldNumber = 11;
  inline const ::quipper::PerfDataProto_SampleInfo& sample_info() const;
  inline ::quipper::PerfDataProto_SampleInfo* mutable_sample_info();
  inline ::quipper::PerfDataProto_SampleInfo* release_sample_info();
  inline void set_allocated_sample_info(::quipper::PerfDataProto_SampleInfo* sample_info);

  // @@protoc_insertion_point(class_scope:quipper.PerfDataProto.ForkEvent)
 private:
  inline void set_has_pid();
  inline void clear_has_pid();
  inline void set_has_ppid();
  inline void clear_has_ppid();
  inline void set_has_tid();
  inline void clear_has_tid();
  inline void set_has_ptid();
  inline void clear_has_ptid();
  inline void set_has_fork_time_ns();
  inline void clear_has_fork_time_ns();
  inline void set_has_sample_info();
  inline void clear_has_sample_info();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 pid_;
  ::google::protobuf::uint32 ppid_;
  ::google::protobuf::uint32 tid_;
  ::google::protobuf::uint32 ptid_;
  ::google::protobuf::uint64 fork_time_ns_;
  ::quipper::PerfDataProto_SampleInfo* sample_info_;

  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(6 + 31) / 32];

  friend void  protobuf_AddDesc_perf_5fdata_2eproto();
  friend void protobuf_AssignDesc_perf_5fdata_2eproto();
  friend void protobuf_ShutdownFile_perf_5fdata_2eproto();

  void InitAsDefaultInstance();
  static PerfDataProto_ForkEvent* default_instance_;
};
// -------------------------------------------------------------------

class PerfDataProto_LostEvent : public ::google::protobuf::Message {
 public:
  PerfDataProto_LostEvent();
  virtual ~PerfDataProto_LostEvent();

  PerfDataProto_LostEvent(const PerfDataProto_LostEvent& from);

  inline PerfDataProto_LostEvent& operator=(const PerfDataProto_LostEvent& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const PerfDataProto_LostEvent& default_instance();

  void Swap(PerfDataProto_LostEvent* other);

  // implements Message ----------------------------------------------

  PerfDataProto_LostEvent* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const PerfDataProto_LostEvent& from);
  void MergeFrom(const PerfDataProto_LostEvent& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:

  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional uint64 id = 1;
  inline bool has_id() const;
  inline void clear_id();
  static const int kIdFieldNumber = 1;
  inline ::google::protobuf::uint64 id() const;
  inline void set_id(::google::protobuf::uint64 value);

  // optional uint64 lost = 2;
  inline bool has_lost() const;
  inline void clear_lost();
  static const int kLostFieldNumber = 2;
  inline ::google::protobuf::uint64 lost() const;
  inline void set_lost(::google::protobuf::uint64 value);

  // optional .quipper.PerfDataProto.SampleInfo sample_info = 3;
  inline bool has_sample_info() const;
  inline void clear_sample_info();
  static const int kSampleInfoFieldNumber = 3;
  inline const ::quipper::PerfDataProto_SampleInfo& sample_info() const;
  inline ::quipper::PerfDataProto_SampleInfo* mutable_sample_info();
  inline ::quipper::PerfDataProto_SampleInfo* release_sample_info();
  inline void set_allocated_sample_info(::quipper::PerfDataProto_SampleInfo* sample_info);

  // @@protoc_insertion_point(class_scope:quipper.PerfDataProto.LostEvent)
 private:
  inline void set_has_id();
  inline void clear_has_id();
  inline void set_has_lost();
  inline void clear_has_lost();
  inline void set_has_sample_info();
  inline void clear_has_sample_info();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint64 id_;
  ::google::protobuf::uint64 lost_;
  ::quipper::PerfDataProto_SampleInfo* sample_info_;

  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(3 + 31) / 32];

  friend void  protobuf_AddDesc_perf_5fdata_2eproto();
  friend void protobuf_AssignDesc_perf_5fdata_2eproto();
  friend void protobuf_ShutdownFile_perf_5fdata_2eproto();

  void InitAsDefaultInstance();
  static PerfDataProto_LostEvent* default_instance_;
};
// -------------------------------------------------------------------

class PerfDataProto_ThrottleEvent : public ::google::protobuf::Message {
 public:
  PerfDataProto_ThrottleEvent();
  virtual ~PerfDataProto_ThrottleEvent();

  PerfDataProto_ThrottleEvent(const PerfDataProto_ThrottleEvent& from);

  inline PerfDataProto_ThrottleEvent& operator=(const PerfDataProto_ThrottleEvent& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const PerfDataProto_ThrottleEvent& default_instance();

  void Swap(PerfDataProto_ThrottleEvent* other);

  // implements Message ----------------------------------------------

  PerfDataProto_ThrottleEvent* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const PerfDataProto_ThrottleEvent& from);
  void MergeFrom(const PerfDataProto_ThrottleEvent& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:

  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional uint64 time_ns = 1;
  inline bool has_time_ns() const;
  inline void clear_time_ns();
  static const int kTimeNsFieldNumber = 1;
  inline ::google::protobuf::uint64 time_ns() const;
  inline void set_time_ns(::google::protobuf::uint64 value);

  // optional uint64 id = 2;
  inline bool has_id() const;
  inline void clear_id();
  static const int kIdFieldNumber = 2;
  inline ::google::protobuf::uint64 id() const;
  inline void set_id(::google::protobuf::uint64 value);

  // optional uint64 stream_id = 3;
  inline bool has_stream_id() const;
  inline void clear_stream_id();
  static const int kStreamIdFieldNumber = 3;
  inline ::google::protobuf::uint64 stream_id() const;
  inline void set_stream_id(::google::protobuf::uint64 value);

  // optional .quipper.PerfDataProto.SampleInfo sample_info = 4;
  inline bool has_sample_info() const;
  inline void clear_sample_info();
  static const int kSampleInfoFieldNumber = 4;
  inline const ::quipper::PerfDataProto_SampleInfo& sample_info() const;
  inline ::quipper::PerfDataProto_SampleInfo* mutable_sample_info();
  inline ::quipper::PerfDataProto_SampleInfo* release_sample_info();
  inline void set_allocated_sample_info(::quipper::PerfDataProto_SampleInfo* sample_info);

  // @@protoc_insertion_point(class_scope:quipper.PerfDataProto.ThrottleEvent)
 private:
  inline void set_has_time_ns();
  inline void clear_has_time_ns();
  inline void set_has_id();
  inline void clear_has_id();
  inline void set_has_stream_id();
  inline void clear_has_stream_id();
  inline void set_has_sample_info();
  inline void clear_has_sample_info();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint64 time_ns_;
  ::google::protobuf::uint64 id_;
  ::google::protobuf::uint64 stream_id_;
  ::quipper::PerfDataProto_SampleInfo* sample_info_;

  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(4 + 31) / 32];

  friend void  protobuf_AddDesc_perf_5fdata_2eproto();
  friend void protobuf_AssignDesc_perf_5fdata_2eproto();
  friend void protobuf_ShutdownFile_perf_5fdata_2eproto();

  void InitAsDefaultInstance();
  static PerfDataProto_ThrottleEvent* default_instance_;
};
// -------------------------------------------------------------------

class PerfDataProto_ReadEvent : public ::google::protobuf::Message {
 public:
  PerfDataProto_ReadEvent();
  virtual ~PerfDataProto_ReadEvent();

  PerfDataProto_ReadEvent(const PerfDataProto_ReadEvent& from);

  inline PerfDataProto_ReadEvent& operator=(const PerfDataProto_ReadEvent& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const PerfDataProto_ReadEvent& default_instance();

  void Swap(PerfDataProto_ReadEvent* other);

  // implements Message ----------------------------------------------

  PerfDataProto_ReadEvent* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const PerfDataProto_ReadEvent& from);
  void MergeFrom(const PerfDataProto_ReadEvent& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:

  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional uint32 pid = 1;
  inline bool has_pid() const;
  inline void clear_pid();
  static const int kPidFieldNumber = 1;
  inline ::google::protobuf::uint32 pid() const;
  inline void set_pid(::google::protobuf::uint32 value);

  // optional uint32 tid = 2;
  inline bool has_tid() const;
  inline void clear_tid();
  static const int kTidFieldNumber = 2;
  inline ::google::protobuf::uint32 tid() const;
  inline void set_tid(::google::protobuf::uint32 value);

  // optional uint64 value = 3;
  inline bool has_value() const;
  inline void clear_value();
  static const int kValueFieldNumber = 3;
  inline ::google::protobuf::uint64 value() const;
  inline void set_value(::google::protobuf::uint64 value);

  // optional uint64 time_enabled = 4;
  inline bool has_time_enabled() const;
  inline void clear_time_enabled();
  static const int kTimeEnabledFieldNumber = 4;
  inline ::google::protobuf::uint64 time_enabled() const;
  inline void set_time_enabled(::google::protobuf::uint64 value);

  // optional uint64 time_running = 5;
  inline bool has_time_running() const;
  inline void clear_time_running();
  static const int kTimeRunningFieldNumber = 5;
  inline ::google::protobuf::uint64 time_running() const;
  inline void set_time_running(::google::protobuf::uint64 value);

  // optional uint64 id = 6;
  inline bool has_id() const;
  inline void clear_id();
  static const int kIdFieldNumber = 6;
  inline ::google::protobuf::uint64 id() const;
  inline void set_id(::google::protobuf::uint64 value);

  // optional .quipper.PerfDataProto.SampleInfo sample_info = 7;
  inline bool has_sample_info() const;
  inline void clear_sample_info();
  static const int kSampleInfoFieldNumber = 7;
  inline const ::quipper::PerfDataProto_SampleInfo& sample_info() const;
  inline ::quipper::PerfDataProto_SampleInfo* mutable_sample_info();
  inline ::quipper::PerfDataProto_SampleInfo* release_sample_info();
  inline void set_allocated_sample_info(::quipper::PerfDataProto_SampleInfo* sample_info);

  // @@protoc_insertion_point(class_scope:quipper.PerfDataProto.ReadEvent)
 private:
  inline void set_has_pid();
  inline void clear_has_pid();
  inline void set_has_tid();
  inline void clear_has_tid();
  inline void set_has_value();
  inline void clear_has_value();
  inline void set_has_time_enabled();
  inline void clear_has_time_enabled();
  inline void set_has_time_running();
  inline void clear_has_time_running();
  inline void set_has_id();
  inline void clear_has_id();
  inline void set_has_sample_info();
  inline void clear_has_sample_info();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 pid_;
  ::google::protobuf::uint32 tid_;
  ::google::protobuf::uint64 value_;
  ::google::protobuf::uint64 time_enabled_;
  ::google::protobuf::uint64 time_running_;
  ::google::protobuf::uint64 id_;
  ::quipper::PerfDataProto_SampleInfo* sample_info_;

  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(7 + 31) / 32];

  friend void  protobuf_AddDesc_perf_5fdata_2eproto();
  friend void protobuf_AssignDesc_perf_5fdata_2eproto();
  friend void protobuf_ShutdownFile_perf_5fdata_2eproto();

  void InitAsDefaultInstance();
  static PerfDataProto_ReadEvent* default_instance_;
};
// -------------------------------------------------------------------

class PerfDataProto_EventHeader : public ::google::protobuf::Message {
 public:
  PerfDataProto_EventHeader();
  virtual ~PerfDataProto_EventHeader();

  PerfDataProto_EventHeader(const PerfDataProto_EventHeader& from);

  inline PerfDataProto_EventHeader& operator=(const PerfDataProto_EventHeader& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const PerfDataProto_EventHeader& default_instance();

  void Swap(PerfDataProto_EventHeader* other);

  // implements Message ----------------------------------------------

  PerfDataProto_EventHeader* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const PerfDataProto_EventHeader& from);
  void MergeFrom(const PerfDataProto_EventHeader& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:

  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional uint32 type = 1;
  inline bool has_type() const;
  inline void clear_type();
  static const int kTypeFieldNumber = 1;
  inline ::google::protobuf::uint32 type() const;
  inline void set_type(::google::protobuf::uint32 value);

  // optional uint32 misc = 2;
  inline bool has_misc() const;
  inline void clear_misc();
  static const int kMiscFieldNumber = 2;
  inline ::google::protobuf::uint32 misc() const;
  inline void set_misc(::google::protobuf::uint32 value);

  // optional uint32 size = 3;
  inline bool has_size() const;
  inline void clear_size();
  static const int kSizeFieldNumber = 3;
  inline ::google::protobuf::uint32 size() const;
  inline void set_size(::google::protobuf::uint32 value);

  // @@protoc_insertion_point(class_scope:quipper.PerfDataProto.EventHeader)
 private:
  inline void set_has_type();
  inline void clear_has_type();
  inline void set_has_misc();
  inline void clear_has_misc();
  inline void set_has_size();
  inline void clear_has_size();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 type_;
  ::google::protobuf::uint32 misc_;
  ::google::protobuf::uint32 size_;

  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(3 + 31) / 32];

  friend void  protobuf_AddDesc_perf_5fdata_2eproto();
  friend void protobuf_AssignDesc_perf_5fdata_2eproto();
  friend void protobuf_ShutdownFile_perf_5fdata_2eproto();

  void InitAsDefaultInstance();
  static PerfDataProto_EventHeader* default_instance_;
};
// -------------------------------------------------------------------

class PerfDataProto_PerfEvent : public ::google::protobuf::Message {
 public:
  PerfDataProto_PerfEvent();
  virtual ~PerfDataProto_PerfEvent();

  PerfDataProto_PerfEvent(const PerfDataProto_PerfEvent& from);

  inline PerfDataProto_PerfEvent& operator=(const PerfDataProto_PerfEvent& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const PerfDataProto_PerfEvent& default_instance();

  void Swap(PerfDataProto_PerfEvent* other);

  // implements Message ----------------------------------------------

  PerfDataProto_PerfEvent* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const PerfDataProto_PerfEvent& from);
  void MergeFrom(const PerfDataProto_PerfEvent& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:

  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional .quipper.PerfDataProto.EventHeader header = 1;
  inline bool has_header() const;
  inline void clear_header();
  static const int kHeaderFieldNumber = 1;
  inline const ::quipper::PerfDataProto_EventHeader& header() const;
  inline ::quipper::PerfDataProto_EventHeader* mutable_header();
  inline ::quipper::PerfDataProto_EventHeader* release_header();
  inline void set_allocated_header(::quipper::PerfDataProto_EventHeader* header);

  // optional .quipper.PerfDataProto.MMapEvent mmap_event = 2;
  inline bool has_mmap_event() const;
  inline void clear_mmap_event();
  static const int kMmapEventFieldNumber = 2;
  inline const ::quipper::PerfDataProto_MMapEvent& mmap_event() const;
  inline ::quipper::PerfDataProto_MMapEvent* mutable_mmap_event();
  inline ::quipper::PerfDataProto_MMapEvent* release_mmap_event();
  inline void set_allocated_mmap_event(::quipper::PerfDataProto_MMapEvent* mmap_event);

  // optional .quipper.PerfDataProto.SampleEvent sample_event = 3;
  inline bool has_sample_event() const;
  inline void clear_sample_event();
  static const int kSampleEventFieldNumber = 3;
  inline const ::quipper::PerfDataProto_SampleEvent& sample_event() const;
  inline ::quipper::PerfDataProto_SampleEvent* mutable_sample_event();
  inline ::quipper::PerfDataProto_SampleEvent* release_sample_event();
  inline void set_allocated_sample_event(::quipper::PerfDataProto_SampleEvent* sample_event);

  // optional .quipper.PerfDataProto.CommEvent comm_event = 4;
  inline bool has_comm_event() const;
  inline void clear_comm_event();
  static const int kCommEventFieldNumber = 4;
  inline const ::quipper::PerfDataProto_CommEvent& comm_event() const;
  inline ::quipper::PerfDataProto_CommEvent* mutable_comm_event();
  inline ::quipper::PerfDataProto_CommEvent* release_comm_event();
  inline void set_allocated_comm_event(::quipper::PerfDataProto_CommEvent* comm_event);

  // optional .quipper.PerfDataProto.ForkEvent fork_event = 5;
  inline bool has_fork_event() const;
  inline void clear_fork_event();
  static const int kForkEventFieldNumber = 5;
  inline const ::quipper::PerfDataProto_ForkEvent& fork_event() const;
  inline ::quipper::PerfDataProto_ForkEvent* mutable_fork_event();
  inline ::quipper::PerfDataProto_ForkEvent* release_fork_event();
  inline void set_allocated_fork_event(::quipper::PerfDataProto_ForkEvent* fork_event);

  // optional .quipper.PerfDataProto.LostEvent lost_event = 6;
  inline bool has_lost_event() const;
  inline void clear_lost_event();
  static const int kLostEventFieldNumber = 6;
  inline const ::quipper::PerfDataProto_LostEvent& lost_event() const;
  inline ::quipper::PerfDataProto_LostEvent* mutable_lost_event();
  inline ::quipper::PerfDataProto_LostEvent* release_lost_event();
  inline void set_allocated_lost_event(::quipper::PerfDataProto_LostEvent* lost_event);

  // optional .quipper.PerfDataProto.ThrottleEvent throttle_event = 7;
  inline bool has_throttle_event() const;
  inline void clear_throttle_event();
  static const int kThrottleEventFieldNumber = 7;
  inline const ::quipper::PerfDataProto_ThrottleEvent& throttle_event() const;
  inline ::quipper::PerfDataProto_ThrottleEvent* mutable_throttle_event();
  inline ::quipper::PerfDataProto_ThrottleEvent* release_throttle_event();
  inline void set_allocated_throttle_event(::quipper::PerfDataProto_ThrottleEvent* throttle_event);

  // optional .quipper.PerfDataProto.ReadEvent read_event = 8;
  inline bool has_read_event() const;
  inline void clear_read_event();
  static const int kReadEventFieldNumber = 8;
  inline const ::quipper::PerfDataProto_ReadEvent& read_event() const;
  inline ::quipper::PerfDataProto_ReadEvent* mutable_read_event();
  inline ::quipper::PerfDataProto_ReadEvent* release_read_event();
  inline void set_allocated_read_event(::quipper::PerfDataProto_ReadEvent* read_event);

  // @@protoc_insertion_point(class_scope:quipper.PerfDataProto.PerfEvent)
 private:
  inline void set_has_header();
  inline void clear_has_header();
  inline void set_has_mmap_event();
  inline void clear_has_mmap_event();
  inline void set_has_sample_event();
  inline void clear_has_sample_event();
  inline void set_has_comm_event();
  inline void clear_has_comm_event();
  inline void set_has_fork_event();
  inline void clear_has_fork_event();
  inline void set_has_lost_event();
  inline void clear_has_lost_event();
  inline void set_has_throttle_event();
  inline void clear_has_throttle_event();
  inline void set_has_read_event();
  inline void clear_has_read_event();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::quipper::PerfDataProto_EventHeader* header_;
  ::quipper::PerfDataProto_MMapEvent* mmap_event_;
  ::quipper::PerfDataProto_SampleEvent* sample_event_;
  ::quipper::PerfDataProto_CommEvent* comm_event_;
  ::quipper::PerfDataProto_ForkEvent* fork_event_;
  ::quipper::PerfDataProto_LostEvent* lost_event_;
  ::quipper::PerfDataProto_ThrottleEvent* throttle_event_;
  ::quipper::PerfDataProto_ReadEvent* read_event_;

  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(8 + 31) / 32];

  friend void  protobuf_AddDesc_perf_5fdata_2eproto();
  friend void protobuf_AssignDesc_perf_5fdata_2eproto();
  friend void protobuf_ShutdownFile_perf_5fdata_2eproto();

  void InitAsDefaultInstance();
  static PerfDataProto_PerfEvent* default_instance_;
};
// -------------------------------------------------------------------

class PerfDataProto_PerfEventStats : public ::google::protobuf::Message {
 public:
  PerfDataProto_PerfEventStats();
  virtual ~PerfDataProto_PerfEventStats();

  PerfDataProto_PerfEventStats(const PerfDataProto_PerfEventStats& from);

  inline PerfDataProto_PerfEventStats& operator=(const PerfDataProto_PerfEventStats& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const PerfDataProto_PerfEventStats& default_instance();

  void Swap(PerfDataProto_PerfEventStats* other);

  // implements Message ----------------------------------------------

  PerfDataProto_PerfEventStats* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const PerfDataProto_PerfEventStats& from);
  void MergeFrom(const PerfDataProto_PerfEventStats& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:

  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional uint32 num_events_read = 1;
  inline bool has_num_events_read() const;
  inline void clear_num_events_read();
  static const int kNumEventsReadFieldNumber = 1;
  inline ::google::protobuf::uint32 num_events_read() const;
  inline void set_num_events_read(::google::protobuf::uint32 value);

  // optional uint32 num_sample_events = 2;
  inline bool has_num_sample_events() const;
  inline void clear_num_sample_events();
  static const int kNumSampleEventsFieldNumber = 2;
  inline ::google::protobuf::uint32 num_sample_events() const;
  inline void set_num_sample_events(::google::protobuf::uint32 value);

  // optional uint32 num_mmap_events = 3;
  inline bool has_num_mmap_events() const;
  inline void clear_num_mmap_events();
  static const int kNumMmapEventsFieldNumber = 3;
  inline ::google::protobuf::uint32 num_mmap_events() const;
  inline void set_num_mmap_events(::google::protobuf::uint32 value);

  // optional uint32 num_fork_events = 4;
  inline bool has_num_fork_events() const;
  inline void clear_num_fork_events();
  static const int kNumForkEventsFieldNumber = 4;
  inline ::google::protobuf::uint32 num_fork_events() const;
  inline void set_num_fork_events(::google::protobuf::uint32 value);

  // optional uint32 num_exit_events = 5;
  inline bool has_num_exit_events() const;
  inline void clear_num_exit_events();
  static const int kNumExitEventsFieldNumber = 5;
  inline ::google::protobuf::uint32 num_exit_events() const;
  inline void set_num_exit_events(::google::protobuf::uint32 value);

  // optional uint32 num_sample_events_mapped = 6;
  inline bool has_num_sample_events_mapped() const;
  inline void clear_num_sample_events_mapped();
  static const int kNumSampleEventsMappedFieldNumber = 6;
  inline ::google::protobuf::uint32 num_sample_events_mapped() const;
  inline void set_num_sample_events_mapped(::google::protobuf::uint32 value);

  // optional bool did_remap = 7;
  inline bool has_did_remap() const;
  inline void clear_did_remap();
  static const int kDidRemapFieldNumber = 7;
  inline bool did_remap() const;
  inline void set_did_remap(bool value);

  // @@protoc_insertion_point(class_scope:quipper.PerfDataProto.PerfEventStats)
 private:
  inline void set_has_num_events_read();
  inline void clear_has_num_events_read();
  inline void set_has_num_sample_events();
  inline void clear_has_num_sample_events();
  inline void set_has_num_mmap_events();
  inline void clear_has_num_mmap_events();
  inline void set_has_num_fork_events();
  inline void clear_has_num_fork_events();
  inline void set_has_num_exit_events();
  inline void clear_has_num_exit_events();
  inline void set_has_num_sample_events_mapped();
  inline void clear_has_num_sample_events_mapped();
  inline void set_has_did_remap();
  inline void clear_has_did_remap();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 num_events_read_;
  ::google::protobuf::uint32 num_sample_events_;
  ::google::protobuf::uint32 num_mmap_events_;
  ::google::protobuf::uint32 num_fork_events_;
  ::google::protobuf::uint32 num_exit_events_;
  ::google::protobuf::uint32 num_sample_events_mapped_;
  bool did_remap_;

  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(7 + 31) / 32];

  friend void  protobuf_AddDesc_perf_5fdata_2eproto();
  friend void protobuf_AssignDesc_perf_5fdata_2eproto();
  friend void protobuf_ShutdownFile_perf_5fdata_2eproto();

  void InitAsDefaultInstance();
  static PerfDataProto_PerfEventStats* default_instance_;
};
// -------------------------------------------------------------------

class PerfDataProto_PerfUint32Metadata : public ::google::protobuf::Message {
 public:
  PerfDataProto_PerfUint32Metadata();
  virtual ~PerfDataProto_PerfUint32Metadata();

  PerfDataProto_PerfUint32Metadata(const PerfDataProto_PerfUint32Metadata& from);

  inline PerfDataProto_PerfUint32Metadata& operator=(const PerfDataProto_PerfUint32Metadata& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const PerfDataProto_PerfUint32Metadata& default_instance();

  void Swap(PerfDataProto_PerfUint32Metadata* other);

  // implements Message ----------------------------------------------

  PerfDataProto_PerfUint32Metadata* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const PerfDataProto_PerfUint32Metadata& from);
  void MergeFrom(const PerfDataProto_PerfUint32Metadata& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:

  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional uint32 type = 1;
  inline bool has_type() const;
  inline void clear_type();
  static const int kTypeFieldNumber = 1;
  inline ::google::protobuf::uint32 type() const;
  inline void set_type(::google::protobuf::uint32 value);

  // repeated uint32 data = 2;
  inline int data_size() const;
  inline void clear_data();
  static const int kDataFieldNumber = 2;
  inline ::google::protobuf::uint32 data(int index) const;
  inline void set_data(int index, ::google::protobuf::uint32 value);
  inline void add_data(::google::protobuf::uint32 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
      data() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
      mutable_data();

  // @@protoc_insertion_point(class_scope:quipper.PerfDataProto.PerfUint32Metadata)
 private:
  inline void set_has_type();
  inline void clear_has_type();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > data_;
  ::google::protobuf::uint32 type_;

  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(2 + 31) / 32];

  friend void  protobuf_AddDesc_perf_5fdata_2eproto();
  friend void protobuf_AssignDesc_perf_5fdata_2eproto();
  friend void protobuf_ShutdownFile_perf_5fdata_2eproto();

  void InitAsDefaultInstance();
  static PerfDataProto_PerfUint32Metadata* default_instance_;
};
// -------------------------------------------------------------------

class PerfDataProto_PerfUint64Metadata : public ::google::protobuf::Message {
 public:
  PerfDataProto_PerfUint64Metadata();
  virtual ~PerfDataProto_PerfUint64Metadata();

  PerfDataProto_PerfUint64Metadata(const PerfDataProto_PerfUint64Metadata& from);

  inline PerfDataProto_PerfUint64Metadata& operator=(const PerfDataProto_PerfUint64Metadata& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const PerfDataProto_PerfUint64Metadata& default_instance();

  void Swap(PerfDataProto_PerfUint64Metadata* other);

  // implements Message ----------------------------------------------

  PerfDataProto_PerfUint64Metadata* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const PerfDataProto_PerfUint64Metadata& from);
  void MergeFrom(const PerfDataProto_PerfUint64Metadata& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:

  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional uint32 type = 1;
  inline bool has_type() const;
  inline void clear_type();
  static const int kTypeFieldNumber = 1;
  inline ::google::protobuf::uint32 type() const;
  inline void set_type(::google::protobuf::uint32 value);

  // repeated uint64 data = 2;
  inline int data_size() const;
  inline void clear_data();
  static const int kDataFieldNumber = 2;
  inline ::google::protobuf::uint64 data(int index) const;
  inline void set_data(int index, ::google::protobuf::uint64 value);
  inline void add_data(::google::protobuf::uint64 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
      data() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
      mutable_data();

  // @@protoc_insertion_point(class_scope:quipper.PerfDataProto.PerfUint64Metadata)
 private:
  inline void set_has_type();
  inline void clear_has_type();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::RepeatedField< ::google::protobuf::uint64 > data_;
  ::google::protobuf::uint32 type_;

  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(2 + 31) / 32];

  friend void  protobuf_AddDesc_perf_5fdata_2eproto();
  friend void protobuf_AssignDesc_perf_5fdata_2eproto();
  friend void protobuf_ShutdownFile_perf_5fdata_2eproto();

  void InitAsDefaultInstance();
  static PerfDataProto_PerfUint64Metadata* default_instance_;
};
// -------------------------------------------------------------------

class PerfDataProto_PerfTracingMetadata : public ::google::protobuf::Message {
 public:
  PerfDataProto_PerfTracingMetadata();
  virtual ~PerfDataProto_PerfTracingMetadata();

  PerfDataProto_PerfTracingMetadata(const PerfDataProto_PerfTracingMetadata& from);

  inline PerfDataProto_PerfTracingMetadata& operator=(const PerfDataProto_PerfTracingMetadata& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const PerfDataProto_PerfTracingMetadata& default_instance();

  void Swap(PerfDataProto_PerfTracingMetadata* other);

  // implements Message ----------------------------------------------

  PerfDataProto_PerfTracingMetadata* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const PerfDataProto_PerfTracingMetadata& from);
  void MergeFrom(const PerfDataProto_PerfTracingMetadata& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:

  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional bytes tracing_data = 1;
  inline bool has_tracing_data() const;
  inline void clear_tracing_data();
  static const int kTracingDataFieldNumber = 1;
  inline const ::std::string& tracing_data() const;
  inline void set_tracing_data(const ::std::string& value);
  inline void set_tracing_data(const char* value);
  inline void set_tracing_data(const void* value, size_t size);
  inline ::std::string* mutable_tracing_data();
  inline ::std::string* release_tracing_data();
  inline void set_allocated_tracing_data(::std::string* tracing_data);

  // optional uint64 tracing_data_md5_prefix = 2;
  inline bool has_tracing_data_md5_prefix() const;
  inline void clear_tracing_data_md5_prefix();
  static const int kTracingDataMd5PrefixFieldNumber = 2;
  inline ::google::protobuf::uint64 tracing_data_md5_prefix() const;
  inline void set_tracing_data_md5_prefix(::google::protobuf::uint64 value);

  // @@protoc_insertion_point(class_scope:quipper.PerfDataProto.PerfTracingMetadata)
 private:
  inline void set_has_tracing_data();
  inline void clear_has_tracing_data();
  inline void set_has_tracing_data_md5_prefix();
  inline void clear_has_tracing_data_md5_prefix();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::std::string* tracing_data_;
  ::google::protobuf::uint64 tracing_data_md5_prefix_;

  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(2 + 31) / 32];

  friend void  protobuf_AddDesc_perf_5fdata_2eproto();
  friend void protobuf_AssignDesc_perf_5fdata_2eproto();
  friend void protobuf_ShutdownFile_perf_5fdata_2eproto();

  void InitAsDefaultInstance();
  static PerfDataProto_PerfTracingMetadata* default_instance_;
};
// -------------------------------------------------------------------

class PerfDataProto_PerfBuildID : public ::google::protobuf::Message {
 public:
  PerfDataProto_PerfBuildID();
  virtual ~PerfDataProto_PerfBuildID();

  PerfDataProto_PerfBuildID(const PerfDataProto_PerfBuildID& from);

  inline PerfDataProto_PerfBuildID& operator=(const PerfDataProto_PerfBuildID& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const PerfDataProto_PerfBuildID& default_instance();

  void Swap(PerfDataProto_PerfBuildID* other);

  // implements Message ----------------------------------------------

  PerfDataProto_PerfBuildID* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const PerfDataProto_PerfBuildID& from);
  void MergeFrom(const PerfDataProto_PerfBuildID& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:

  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional uint32 misc = 1;
  inline bool has_misc() const;
  inline void clear_misc();
  static const int kMiscFieldNumber = 1;
  inline ::google::protobuf::uint32 misc() const;
  inline void set_misc(::google::protobuf::uint32 value);

  // optional uint32 pid = 2;
  inline bool has_pid() const;
  inline void clear_pid();
  static const int kPidFieldNumber = 2;
  inline ::google::protobuf::uint32 pid() const;
  inline void set_pid(::google::protobuf::uint32 value);

  // optional bytes build_id_hash = 3;
  inline bool has_build_id_hash() const;
  inline void clear_build_id_hash();
  static const int kBuildIdHashFieldNumber = 3;
  inline const ::std::string& build_id_hash() const;
  inline void set_build_id_hash(const ::std::string& value);
  inline void set_build_id_hash(const char* value);
  inline void set_build_id_hash(const void* value, size_t size);
  inline ::std::string* mutable_build_id_hash();
  inline ::std::string* release_build_id_hash();
  inline void set_allocated_build_id_hash(::std::string* build_id_hash);

  // optional string filename = 4;
  inline bool has_filename() const;
  inline void clear_filename();
  static const int kFilenameFieldNumber = 4;
  inline const ::std::string& filename() const;
  inline void set_filename(const ::std::string& value);
  inline void set_filename(const char* value);
  inline void set_filename(const char* value, size_t size);
  inline ::std::string* mutable_filename();
  inline ::std::string* release_filename();
  inline void set_allocated_filename(::std::string* filename);

  // optional uint64 filename_md5_prefix = 5;
  inline bool has_filename_md5_prefix() const;
  inline void clear_filename_md5_prefix();
  static const int kFilenameMd5PrefixFieldNumber = 5;
  inline ::google::protobuf::uint64 filename_md5_prefix() const;
  inline void set_filename_md5_prefix(::google::protobuf::uint64 value);

  // @@protoc_insertion_point(class_scope:quipper.PerfDataProto.PerfBuildID)
 private:
  inline void set_has_misc();
  inline void clear_has_misc();
  inline void set_has_pid();
  inline void clear_has_pid();
  inline void set_has_build_id_hash();
  inline void clear_has_build_id_hash();
  inline void set_has_filename();
  inline void clear_has_filename();
  inline void set_has_filename_md5_prefix();
  inline void clear_has_filename_md5_prefix();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 misc_;
  ::google::protobuf::uint32 pid_;
  ::std::string* build_id_hash_;
  ::std::string* filename_;
  ::google::protobuf::uint64 filename_md5_prefix_;

  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(5 + 31) / 32];

  friend void  protobuf_AddDesc_perf_5fdata_2eproto();
  friend void protobuf_AssignDesc_perf_5fdata_2eproto();
  friend void protobuf_ShutdownFile_perf_5fdata_2eproto();

  void InitAsDefaultInstance();
  static PerfDataProto_PerfBuildID* default_instance_;
};
// -------------------------------------------------------------------

class PerfDataProto_PerfCPUTopologyMetadata : public ::google::protobuf::Message {
 public:
  PerfDataProto_PerfCPUTopologyMetadata();
  virtual ~PerfDataProto_PerfCPUTopologyMetadata();

  PerfDataProto_PerfCPUTopologyMetadata(const PerfDataProto_PerfCPUTopologyMetadata& from);

  inline PerfDataProto_PerfCPUTopologyMetadata& operator=(const PerfDataProto_PerfCPUTopologyMetadata& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const PerfDataProto_PerfCPUTopologyMetadata& default_instance();

  void Swap(PerfDataProto_PerfCPUTopologyMetadata* other);

  // implements Message ----------------------------------------------

  PerfDataProto_PerfCPUTopologyMetadata* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const PerfDataProto_PerfCPUTopologyMetadata& from);
  void MergeFrom(const PerfDataProto_PerfCPUTopologyMetadata& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:

  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // repeated string core_siblings = 1;
  inline int core_siblings_size() const;
  inline void clear_core_siblings();
  static const int kCoreSiblingsFieldNumber = 1;
  inline const ::std::string& core_siblings(int index) const;
  inline ::std::string* mutable_core_siblings(int index);
  inline void set_core_siblings(int index, const ::std::string& value);
  inline void set_core_siblings(int index, const char* value);
  inline void set_core_siblings(int index, const char* value, size_t size);
  inline ::std::string* add_core_siblings();
  inline void add_core_siblings(const ::std::string& value);
  inline void add_core_siblings(const char* value);
  inline void add_core_siblings(const char* value, size_t size);
  inline const ::google::protobuf::RepeatedPtrField< ::std::string>& core_siblings() const;
  inline ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_core_siblings();

  // repeated uint64 core_siblings_md5_prefix = 2;
  inline int core_siblings_md5_prefix_size() const;
  inline void clear_core_siblings_md5_prefix();
  static const int kCoreSiblingsMd5PrefixFieldNumber = 2;
  inline ::google::protobuf::uint64 core_siblings_md5_prefix(int index) const;
  inline void set_core_siblings_md5_prefix(int index, ::google::protobuf::uint64 value);
  inline void add_core_siblings_md5_prefix(::google::protobuf::uint64 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
      core_siblings_md5_prefix() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
      mutable_core_siblings_md5_prefix();

  // repeated string thread_siblings = 3;
  inline int thread_siblings_size() const;
  inline void clear_thread_siblings();
  static const int kThreadSiblingsFieldNumber = 3;
  inline const ::std::string& thread_siblings(int index) const;
  inline ::std::string* mutable_thread_siblings(int index);
  inline void set_thread_siblings(int index, const ::std::string& value);
  inline void set_thread_siblings(int index, const char* value);
  inline void set_thread_siblings(int index, const char* value, size_t size);
  inline ::std::string* add_thread_siblings();
  inline void add_thread_siblings(const ::std::string& value);
  inline void add_thread_siblings(const char* value);
  inline void add_thread_siblings(const char* value, size_t size);
  inline const ::google::protobuf::RepeatedPtrField< ::std::string>& thread_siblings() const;
  inline ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_thread_siblings();

  // repeated uint64 thread_siblings_md5_prefix = 4;
  inline int thread_siblings_md5_prefix_size() const;
  inline void clear_thread_siblings_md5_prefix();
  static const int kThreadSiblingsMd5PrefixFieldNumber = 4;
  inline ::google::protobuf::uint64 thread_siblings_md5_prefix(int index) const;
  inline void set_thread_siblings_md5_prefix(int index, ::google::protobuf::uint64 value);
  inline void add_thread_siblings_md5_prefix(::google::protobuf::uint64 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
      thread_siblings_md5_prefix() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
      mutable_thread_siblings_md5_prefix();

  // @@protoc_insertion_point(class_scope:quipper.PerfDataProto.PerfCPUTopologyMetadata)
 private:

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::RepeatedPtrField< ::std::string> core_siblings_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint64 > core_siblings_md5_prefix_;
  ::google::protobuf::RepeatedPtrField< ::std::string> thread_siblings_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint64 > thread_siblings_md5_prefix_;

  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(4 + 31) / 32];

  friend void  protobuf_AddDesc_perf_5fdata_2eproto();
  friend void protobuf_AssignDesc_perf_5fdata_2eproto();
  friend void protobuf_ShutdownFile_perf_5fdata_2eproto();

  void InitAsDefaultInstance();
  static PerfDataProto_PerfCPUTopologyMetadata* default_instance_;
};
// -------------------------------------------------------------------

class PerfDataProto_PerfNodeTopologyMetadata : public ::google::protobuf::Message {
 public:
  PerfDataProto_PerfNodeTopologyMetadata();
  virtual ~PerfDataProto_PerfNodeTopologyMetadata();

  PerfDataProto_PerfNodeTopologyMetadata(const PerfDataProto_PerfNodeTopologyMetadata& from);

  inline PerfDataProto_PerfNodeTopologyMetadata& operator=(const PerfDataProto_PerfNodeTopologyMetadata& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const PerfDataProto_PerfNodeTopologyMetadata& default_instance();

  void Swap(PerfDataProto_PerfNodeTopologyMetadata* other);

  // implements Message ----------------------------------------------

  PerfDataProto_PerfNodeTopologyMetadata* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const PerfDataProto_PerfNodeTopologyMetadata& from);
  void MergeFrom(const PerfDataProto_PerfNodeTopologyMetadata& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:

  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional uint32 id = 1;
  inline bool has_id() const;
  inline void clear_id();
  static const int kIdFieldNumber = 1;
  inline ::google::protobuf::uint32 id() const;
  inline void set_id(::google::protobuf::uint32 value);

  // optional uint64 total_memory = 2;
  inline bool has_total_memory() const;
  inline void clear_total_memory();
  static const int kTotalMemoryFieldNumber = 2;
  inline ::google::protobuf::uint64 total_memory() const;
  inline void set_total_memory(::google::protobuf::uint64 value);

  // optional uint64 free_memory = 3;
  inline bool has_free_memory() const;
  inline void clear_free_memory();
  static const int kFreeMemoryFieldNumber = 3;
  inline ::google::protobuf::uint64 free_memory() const;
  inline void set_free_memory(::google::protobuf::uint64 value);

  // optional string cpu_list = 4;
  inline bool has_cpu_list() const;
  inline void clear_cpu_list();
  static const int kCpuListFieldNumber = 4;
  inline const ::std::string& cpu_list() const;
  inline void set_cpu_list(const ::std::string& value);
  inline void set_cpu_list(const char* value);
  inline void set_cpu_list(const char* value, size_t size);
  inline ::std::string* mutable_cpu_list();
  inline ::std::string* release_cpu_list();
  inline void set_allocated_cpu_list(::std::string* cpu_list);

  // optional uint64 cpu_list_md5_prefix = 5;
  inline bool has_cpu_list_md5_prefix() const;
  inline void clear_cpu_list_md5_prefix();
  static const int kCpuListMd5PrefixFieldNumber = 5;
  inline ::google::protobuf::uint64 cpu_list_md5_prefix() const;
  inline void set_cpu_list_md5_prefix(::google::protobuf::uint64 value);

  // @@protoc_insertion_point(class_scope:quipper.PerfDataProto.PerfNodeTopologyMetadata)
 private:
  inline void set_has_id();
  inline void clear_has_id();
  inline void set_has_total_memory();
  inline void clear_has_total_memory();
  inline void set_has_free_memory();
  inline void clear_has_free_memory();
  inline void set_has_cpu_list();
  inline void clear_has_cpu_list();
  inline void set_has_cpu_list_md5_prefix();
  inline void clear_has_cpu_list_md5_prefix();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint64 total_memory_;
  ::google::protobuf::uint64 free_memory_;
  ::std::string* cpu_list_;
  ::google::protobuf::uint64 cpu_list_md5_prefix_;
  ::google::protobuf::uint32 id_;

  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(5 + 31) / 32];

  friend void  protobuf_AddDesc_perf_5fdata_2eproto();
  friend void protobuf_AssignDesc_perf_5fdata_2eproto();
  friend void protobuf_ShutdownFile_perf_5fdata_2eproto();

  void InitAsDefaultInstance();
  static PerfDataProto_PerfNodeTopologyMetadata* default_instance_;
};
// -------------------------------------------------------------------

class PerfDataProto_StringMetadata_StringAndMd5sumPrefix : public ::google::protobuf::Message {
 public:
  PerfDataProto_StringMetadata_StringAndMd5sumPrefix();
  virtual ~PerfDataProto_StringMetadata_StringAndMd5sumPrefix();

  PerfDataProto_StringMetadata_StringAndMd5sumPrefix(const PerfDataProto_StringMetadata_StringAndMd5sumPrefix& from);

  inline PerfDataProto_StringMetadata_StringAndMd5sumPrefix& operator=(const PerfDataProto_StringMetadata_StringAndMd5sumPrefix& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const PerfDataProto_StringMetadata_StringAndMd5sumPrefix& default_instance();

  void Swap(PerfDataProto_StringMetadata_StringAndMd5sumPrefix* other);

  // implements Message ----------------------------------------------

  PerfDataProto_StringMetadata_StringAndMd5sumPrefix* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const PerfDataProto_StringMetadata_StringAndMd5sumPrefix& from);
  void MergeFrom(const PerfDataProto_StringMetadata_StringAndMd5sumPrefix& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:

  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional string value = 1;
  inline bool has_value() const;
  inline void clear_value();
  static const int kValueFieldNumber = 1;
  inline const ::std::string& value() const;
  inline void set_value(const ::std::string& value);
  inline void set_value(const char* value);
  inline void set_value(const char* value, size_t size);
  inline ::std::string* mutable_value();
  inline ::std::string* release_value();
  inline void set_allocated_value(::std::string* value);

  // optional uint64 value_md5_prefix = 2;
  inline bool has_value_md5_prefix() const;
  inline void clear_value_md5_prefix();
  static const int kValueMd5PrefixFieldNumber = 2;
  inline ::google::protobuf::uint64 value_md5_prefix() const;
  inline void set_value_md5_prefix(::google::protobuf::uint64 value);

  // @@protoc_insertion_point(class_scope:quipper.PerfDataProto.StringMetadata.StringAndMd5sumPrefix)
 private:
  inline void set_has_value();
  inline void clear_has_value();
  inline void set_has_value_md5_prefix();
  inline void clear_has_value_md5_prefix();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::std::string* value_;
  ::google::protobuf::uint64 value_md5_prefix_;

  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(2 + 31) / 32];

  friend void  protobuf_AddDesc_perf_5fdata_2eproto();
  friend void protobuf_AssignDesc_perf_5fdata_2eproto();
  friend void protobuf_ShutdownFile_perf_5fdata_2eproto();

  void InitAsDefaultInstance();
  static PerfDataProto_StringMetadata_StringAndMd5sumPrefix* default_instance_;
};
// -------------------------------------------------------------------

class PerfDataProto_StringMetadata : public ::google::protobuf::Message {
 public:
  PerfDataProto_StringMetadata();
  virtual ~PerfDataProto_StringMetadata();

  PerfDataProto_StringMetadata(const PerfDataProto_StringMetadata& from);

  inline PerfDataProto_StringMetadata& operator=(const PerfDataProto_StringMetadata& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const PerfDataProto_StringMetadata& default_instance();

  void Swap(PerfDataProto_StringMetadata* other);

  // implements Message ----------------------------------------------

  PerfDataProto_StringMetadata* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const PerfDataProto_StringMetadata& from);
  void MergeFrom(const PerfDataProto_StringMetadata& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:

  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  typedef PerfDataProto_StringMetadata_StringAndMd5sumPrefix StringAndMd5sumPrefix;

  // accessors -------------------------------------------------------

  // optional .quipper.PerfDataProto.StringMetadata.StringAndMd5sumPrefix hostname = 1;
  inline bool has_hostname() const;
  inline void clear_hostname();
  static const int kHostnameFieldNumber = 1;
  inline const ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix& hostname() const;
  inline ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* mutable_hostname();
  inline ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* release_hostname();
  inline void set_allocated_hostname(::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* hostname);

  // optional .quipper.PerfDataProto.StringMetadata.StringAndMd5sumPrefix kernel_version = 2;
  inline bool has_kernel_version() const;
  inline void clear_kernel_version();
  static const int kKernelVersionFieldNumber = 2;
  inline const ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix& kernel_version() const;
  inline ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* mutable_kernel_version();
  inline ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* release_kernel_version();
  inline void set_allocated_kernel_version(::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* kernel_version);

  // optional .quipper.PerfDataProto.StringMetadata.StringAndMd5sumPrefix perf_version = 3;
  inline bool has_perf_version() const;
  inline void clear_perf_version();
  static const int kPerfVersionFieldNumber = 3;
  inline const ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix& perf_version() const;
  inline ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* mutable_perf_version();
  inline ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* release_perf_version();
  inline void set_allocated_perf_version(::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* perf_version);

  // optional .quipper.PerfDataProto.StringMetadata.StringAndMd5sumPrefix architecture = 4;
  inline bool has_architecture() const;
  inline void clear_architecture();
  static const int kArchitectureFieldNumber = 4;
  inline const ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix& architecture() const;
  inline ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* mutable_architecture();
  inline ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* release_architecture();
  inline void set_allocated_architecture(::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* architecture);

  // optional .quipper.PerfDataProto.StringMetadata.StringAndMd5sumPrefix cpu_description = 5;
  inline bool has_cpu_description() const;
  inline void clear_cpu_description();
  static const int kCpuDescriptionFieldNumber = 5;
  inline const ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix& cpu_description() const;
  inline ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* mutable_cpu_description();
  inline ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* release_cpu_description();
  inline void set_allocated_cpu_description(::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* cpu_description);

  // optional .quipper.PerfDataProto.StringMetadata.StringAndMd5sumPrefix cpu_id = 6;
  inline bool has_cpu_id() const;
  inline void clear_cpu_id();
  static const int kCpuIdFieldNumber = 6;
  inline const ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix& cpu_id() const;
  inline ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* mutable_cpu_id();
  inline ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* release_cpu_id();
  inline void set_allocated_cpu_id(::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* cpu_id);

  // repeated .quipper.PerfDataProto.StringMetadata.StringAndMd5sumPrefix perf_command_line_token = 7;
  inline int perf_command_line_token_size() const;
  inline void clear_perf_command_line_token();
  static const int kPerfCommandLineTokenFieldNumber = 7;
  inline const ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix& perf_command_line_token(int index) const;
  inline ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* mutable_perf_command_line_token(int index);
  inline ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* add_perf_command_line_token();
  inline const ::google::protobuf::RepeatedPtrField< ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix >&
      perf_command_line_token() const;
  inline ::google::protobuf::RepeatedPtrField< ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix >*
      mutable_perf_command_line_token();

  // optional .quipper.PerfDataProto.StringMetadata.StringAndMd5sumPrefix perf_command_line_whole = 8;
  inline bool has_perf_command_line_whole() const;
  inline void clear_perf_command_line_whole();
  static const int kPerfCommandLineWholeFieldNumber = 8;
  inline const ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix& perf_command_line_whole() const;
  inline ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* mutable_perf_command_line_whole();
  inline ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* release_perf_command_line_whole();
  inline void set_allocated_perf_command_line_whole(::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* perf_command_line_whole);

  // @@protoc_insertion_point(class_scope:quipper.PerfDataProto.StringMetadata)
 private:
  inline void set_has_hostname();
  inline void clear_has_hostname();
  inline void set_has_kernel_version();
  inline void clear_has_kernel_version();
  inline void set_has_perf_version();
  inline void clear_has_perf_version();
  inline void set_has_architecture();
  inline void clear_has_architecture();
  inline void set_has_cpu_description();
  inline void clear_has_cpu_description();
  inline void set_has_cpu_id();
  inline void clear_has_cpu_id();
  inline void set_has_perf_command_line_whole();
  inline void clear_has_perf_command_line_whole();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* hostname_;
  ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* kernel_version_;
  ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* perf_version_;
  ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* architecture_;
  ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* cpu_description_;
  ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* cpu_id_;
  ::google::protobuf::RepeatedPtrField< ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix > perf_command_line_token_;
  ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* perf_command_line_whole_;

  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(8 + 31) / 32];

  friend void  protobuf_AddDesc_perf_5fdata_2eproto();
  friend void protobuf_AssignDesc_perf_5fdata_2eproto();
  friend void protobuf_ShutdownFile_perf_5fdata_2eproto();

  void InitAsDefaultInstance();
  static PerfDataProto_StringMetadata* default_instance_;
};
// -------------------------------------------------------------------

class PerfDataProto : public ::google::protobuf::Message {
 public:
  PerfDataProto();
  virtual ~PerfDataProto();

  PerfDataProto(const PerfDataProto& from);

  inline PerfDataProto& operator=(const PerfDataProto& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const PerfDataProto& default_instance();

  void Swap(PerfDataProto* other);

  // implements Message ----------------------------------------------

  PerfDataProto* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const PerfDataProto& from);
  void MergeFrom(const PerfDataProto& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:

  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  typedef PerfDataProto_PerfEventAttr PerfEventAttr;
  typedef PerfDataProto_PerfFileAttr PerfFileAttr;
  typedef PerfDataProto_PerfEventType PerfEventType;
  typedef PerfDataProto_SampleInfo SampleInfo;
  typedef PerfDataProto_CommEvent CommEvent;
  typedef PerfDataProto_MMapEvent MMapEvent;
  typedef PerfDataProto_BranchStackEntry BranchStackEntry;
  typedef PerfDataProto_SampleEvent SampleEvent;
  typedef PerfDataProto_ForkEvent ForkEvent;
  typedef PerfDataProto_LostEvent LostEvent;
  typedef PerfDataProto_ThrottleEvent ThrottleEvent;
  typedef PerfDataProto_ReadEvent ReadEvent;
  typedef PerfDataProto_EventHeader EventHeader;
  typedef PerfDataProto_PerfEvent PerfEvent;
  typedef PerfDataProto_PerfEventStats PerfEventStats;
  typedef PerfDataProto_PerfUint32Metadata PerfUint32Metadata;
  typedef PerfDataProto_PerfUint64Metadata PerfUint64Metadata;
  typedef PerfDataProto_PerfTracingMetadata PerfTracingMetadata;
  typedef PerfDataProto_PerfBuildID PerfBuildID;
  typedef PerfDataProto_PerfCPUTopologyMetadata PerfCPUTopologyMetadata;
  typedef PerfDataProto_PerfNodeTopologyMetadata PerfNodeTopologyMetadata;
  typedef PerfDataProto_StringMetadata StringMetadata;

  // accessors -------------------------------------------------------

  // repeated .quipper.PerfDataProto.PerfFileAttr file_attrs = 1;
  inline int file_attrs_size() const;
  inline void clear_file_attrs();
  static const int kFileAttrsFieldNumber = 1;
  inline const ::quipper::PerfDataProto_PerfFileAttr& file_attrs(int index) const;
  inline ::quipper::PerfDataProto_PerfFileAttr* mutable_file_attrs(int index);
  inline ::quipper::PerfDataProto_PerfFileAttr* add_file_attrs();
  inline const ::google::protobuf::RepeatedPtrField< ::quipper::PerfDataProto_PerfFileAttr >&
      file_attrs() const;
  inline ::google::protobuf::RepeatedPtrField< ::quipper::PerfDataProto_PerfFileAttr >*
      mutable_file_attrs();

  // repeated .quipper.PerfDataProto.PerfEvent events = 2;
  inline int events_size() const;
  inline void clear_events();
  static const int kEventsFieldNumber = 2;
  inline const ::quipper::PerfDataProto_PerfEvent& events(int index) const;
  inline ::quipper::PerfDataProto_PerfEvent* mutable_events(int index);
  inline ::quipper::PerfDataProto_PerfEvent* add_events();
  inline const ::google::protobuf::RepeatedPtrField< ::quipper::PerfDataProto_PerfEvent >&
      events() const;
  inline ::google::protobuf::RepeatedPtrField< ::quipper::PerfDataProto_PerfEvent >*
      mutable_events();

  // repeated .quipper.PerfDataProto.PerfEventType event_types = 10;
  inline int event_types_size() const;
  inline void clear_event_types();
  static const int kEventTypesFieldNumber = 10;
  inline const ::quipper::PerfDataProto_PerfEventType& event_types(int index) const;
  inline ::quipper::PerfDataProto_PerfEventType* mutable_event_types(int index);
  inline ::quipper::PerfDataProto_PerfEventType* add_event_types();
  inline const ::google::protobuf::RepeatedPtrField< ::quipper::PerfDataProto_PerfEventType >&
      event_types() const;
  inline ::google::protobuf::RepeatedPtrField< ::quipper::PerfDataProto_PerfEventType >*
      mutable_event_types();

  // optional uint64 timestamp_sec = 3;
  inline bool has_timestamp_sec() const;
  inline void clear_timestamp_sec();
  static const int kTimestampSecFieldNumber = 3;
  inline ::google::protobuf::uint64 timestamp_sec() const;
  inline void set_timestamp_sec(::google::protobuf::uint64 value);

  // optional .quipper.PerfDataProto.PerfEventStats stats = 4;
  inline bool has_stats() const;
  inline void clear_stats();
  static const int kStatsFieldNumber = 4;
  inline const ::quipper::PerfDataProto_PerfEventStats& stats() const;
  inline ::quipper::PerfDataProto_PerfEventStats* mutable_stats();
  inline ::quipper::PerfDataProto_PerfEventStats* release_stats();
  inline void set_allocated_stats(::quipper::PerfDataProto_PerfEventStats* stats);

  // repeated uint64 metadata_mask = 5;
  inline int metadata_mask_size() const;
  inline void clear_metadata_mask();
  static const int kMetadataMaskFieldNumber = 5;
  inline ::google::protobuf::uint64 metadata_mask(int index) const;
  inline void set_metadata_mask(int index, ::google::protobuf::uint64 value);
  inline void add_metadata_mask(::google::protobuf::uint64 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
      metadata_mask() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
      mutable_metadata_mask();

  // optional .quipper.PerfDataProto.PerfTracingMetadata tracing_data = 14;
  inline bool has_tracing_data() const;
  inline void clear_tracing_data();
  static const int kTracingDataFieldNumber = 14;
  inline const ::quipper::PerfDataProto_PerfTracingMetadata& tracing_data() const;
  inline ::quipper::PerfDataProto_PerfTracingMetadata* mutable_tracing_data();
  inline ::quipper::PerfDataProto_PerfTracingMetadata* release_tracing_data();
  inline void set_allocated_tracing_data(::quipper::PerfDataProto_PerfTracingMetadata* tracing_data);

  // repeated .quipper.PerfDataProto.PerfBuildID build_ids = 7;
  inline int build_ids_size() const;
  inline void clear_build_ids();
  static const int kBuildIdsFieldNumber = 7;
  inline const ::quipper::PerfDataProto_PerfBuildID& build_ids(int index) const;
  inline ::quipper::PerfDataProto_PerfBuildID* mutable_build_ids(int index);
  inline ::quipper::PerfDataProto_PerfBuildID* add_build_ids();
  inline const ::google::protobuf::RepeatedPtrField< ::quipper::PerfDataProto_PerfBuildID >&
      build_ids() const;
  inline ::google::protobuf::RepeatedPtrField< ::quipper::PerfDataProto_PerfBuildID >*
      mutable_build_ids();

  // repeated .quipper.PerfDataProto.PerfUint32Metadata uint32_metadata = 8;
  inline int uint32_metadata_size() const;
  inline void clear_uint32_metadata();
  static const int kUint32MetadataFieldNumber = 8;
  inline const ::quipper::PerfDataProto_PerfUint32Metadata& uint32_metadata(int index) const;
  inline ::quipper::PerfDataProto_PerfUint32Metadata* mutable_uint32_metadata(int index);
  inline ::quipper::PerfDataProto_PerfUint32Metadata* add_uint32_metadata();
  inline const ::google::protobuf::RepeatedPtrField< ::quipper::PerfDataProto_PerfUint32Metadata >&
      uint32_metadata() const;
  inline ::google::protobuf::RepeatedPtrField< ::quipper::PerfDataProto_PerfUint32Metadata >*
      mutable_uint32_metadata();

  // repeated .quipper.PerfDataProto.PerfUint64Metadata uint64_metadata = 9;
  inline int uint64_metadata_size() const;
  inline void clear_uint64_metadata();
  static const int kUint64MetadataFieldNumber = 9;
  inline const ::quipper::PerfDataProto_PerfUint64Metadata& uint64_metadata(int index) const;
  inline ::quipper::PerfDataProto_PerfUint64Metadata* mutable_uint64_metadata(int index);
  inline ::quipper::PerfDataProto_PerfUint64Metadata* add_uint64_metadata();
  inline const ::google::protobuf::RepeatedPtrField< ::quipper::PerfDataProto_PerfUint64Metadata >&
      uint64_metadata() const;
  inline ::google::protobuf::RepeatedPtrField< ::quipper::PerfDataProto_PerfUint64Metadata >*
      mutable_uint64_metadata();

  // optional .quipper.PerfDataProto.PerfCPUTopologyMetadata cpu_topology = 11;
  inline bool has_cpu_topology() const;
  inline void clear_cpu_topology();
  static const int kCpuTopologyFieldNumber = 11;
  inline const ::quipper::PerfDataProto_PerfCPUTopologyMetadata& cpu_topology() const;
  inline ::quipper::PerfDataProto_PerfCPUTopologyMetadata* mutable_cpu_topology();
  inline ::quipper::PerfDataProto_PerfCPUTopologyMetadata* release_cpu_topology();
  inline void set_allocated_cpu_topology(::quipper::PerfDataProto_PerfCPUTopologyMetadata* cpu_topology);

  // repeated .quipper.PerfDataProto.PerfNodeTopologyMetadata numa_topology = 12;
  inline int numa_topology_size() const;
  inline void clear_numa_topology();
  static const int kNumaTopologyFieldNumber = 12;
  inline const ::quipper::PerfDataProto_PerfNodeTopologyMetadata& numa_topology(int index) const;
  inline ::quipper::PerfDataProto_PerfNodeTopologyMetadata* mutable_numa_topology(int index);
  inline ::quipper::PerfDataProto_PerfNodeTopologyMetadata* add_numa_topology();
  inline const ::google::protobuf::RepeatedPtrField< ::quipper::PerfDataProto_PerfNodeTopologyMetadata >&
      numa_topology() const;
  inline ::google::protobuf::RepeatedPtrField< ::quipper::PerfDataProto_PerfNodeTopologyMetadata >*
      mutable_numa_topology();

  // optional .quipper.PerfDataProto.StringMetadata string_metadata = 13;
  inline bool has_string_metadata() const;
  inline void clear_string_metadata();
  static const int kStringMetadataFieldNumber = 13;
  inline const ::quipper::PerfDataProto_StringMetadata& string_metadata() const;
  inline ::quipper::PerfDataProto_StringMetadata* mutable_string_metadata();
  inline ::quipper::PerfDataProto_StringMetadata* release_string_metadata();
  inline void set_allocated_string_metadata(::quipper::PerfDataProto_StringMetadata* string_metadata);

  // @@protoc_insertion_point(class_scope:quipper.PerfDataProto)
 private:
  inline void set_has_timestamp_sec();
  inline void clear_has_timestamp_sec();
  inline void set_has_stats();
  inline void clear_has_stats();
  inline void set_has_tracing_data();
  inline void clear_has_tracing_data();
  inline void set_has_cpu_topology();
  inline void clear_has_cpu_topology();
  inline void set_has_string_metadata();
  inline void clear_has_string_metadata();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::RepeatedPtrField< ::quipper::PerfDataProto_PerfFileAttr > file_attrs_;
  ::google::protobuf::RepeatedPtrField< ::quipper::PerfDataProto_PerfEvent > events_;
  ::google::protobuf::RepeatedPtrField< ::quipper::PerfDataProto_PerfEventType > event_types_;
  ::google::protobuf::uint64 timestamp_sec_;
  ::quipper::PerfDataProto_PerfEventStats* stats_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint64 > metadata_mask_;
  ::quipper::PerfDataProto_PerfTracingMetadata* tracing_data_;
  ::google::protobuf::RepeatedPtrField< ::quipper::PerfDataProto_PerfBuildID > build_ids_;
  ::google::protobuf::RepeatedPtrField< ::quipper::PerfDataProto_PerfUint32Metadata > uint32_metadata_;
  ::google::protobuf::RepeatedPtrField< ::quipper::PerfDataProto_PerfUint64Metadata > uint64_metadata_;
  ::quipper::PerfDataProto_PerfCPUTopologyMetadata* cpu_topology_;
  ::google::protobuf::RepeatedPtrField< ::quipper::PerfDataProto_PerfNodeTopologyMetadata > numa_topology_;
  ::quipper::PerfDataProto_StringMetadata* string_metadata_;

  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(13 + 31) / 32];

  friend void  protobuf_AddDesc_perf_5fdata_2eproto();
  friend void protobuf_AssignDesc_perf_5fdata_2eproto();
  friend void protobuf_ShutdownFile_perf_5fdata_2eproto();

  void InitAsDefaultInstance();
  static PerfDataProto* default_instance_;
};
// ===================================================================


// ===================================================================

// PerfDataProto_PerfEventAttr

// optional uint32 type = 1;
inline bool PerfDataProto_PerfEventAttr::has_type() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void PerfDataProto_PerfEventAttr::set_has_type() {
  _has_bits_[0] |= 0x00000001u;
}
inline void PerfDataProto_PerfEventAttr::clear_has_type() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void PerfDataProto_PerfEventAttr::clear_type() {
  type_ = 0u;
  clear_has_type();
}
inline ::google::protobuf::uint32 PerfDataProto_PerfEventAttr::type() const {
  return type_;
}
inline void PerfDataProto_PerfEventAttr::set_type(::google::protobuf::uint32 value) {
  set_has_type();
  type_ = value;
}

// optional uint32 size = 2;
inline bool PerfDataProto_PerfEventAttr::has_size() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void PerfDataProto_PerfEventAttr::set_has_size() {
  _has_bits_[0] |= 0x00000002u;
}
inline void PerfDataProto_PerfEventAttr::clear_has_size() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void PerfDataProto_PerfEventAttr::clear_size() {
  size_ = 0u;
  clear_has_size();
}
inline ::google::protobuf::uint32 PerfDataProto_PerfEventAttr::size() const {
  return size_;
}
inline void PerfDataProto_PerfEventAttr::set_size(::google::protobuf::uint32 value) {
  set_has_size();
  size_ = value;
}

// optional uint64 config = 3;
inline bool PerfDataProto_PerfEventAttr::has_config() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void PerfDataProto_PerfEventAttr::set_has_config() {
  _has_bits_[0] |= 0x00000004u;
}
inline void PerfDataProto_PerfEventAttr::clear_has_config() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void PerfDataProto_PerfEventAttr::clear_config() {
  config_ = GOOGLE_ULONGLONG(0);
  clear_has_config();
}
inline ::google::protobuf::uint64 PerfDataProto_PerfEventAttr::config() const {
  return config_;
}
inline void PerfDataProto_PerfEventAttr::set_config(::google::protobuf::uint64 value) {
  set_has_config();
  config_ = value;
}

// optional uint64 sample_period = 4;
inline bool PerfDataProto_PerfEventAttr::has_sample_period() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void PerfDataProto_PerfEventAttr::set_has_sample_period() {
  _has_bits_[0] |= 0x00000008u;
}
inline void PerfDataProto_PerfEventAttr::clear_has_sample_period() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void PerfDataProto_PerfEventAttr::clear_sample_period() {
  sample_period_ = GOOGLE_ULONGLONG(0);
  clear_has_sample_period();
}
inline ::google::protobuf::uint64 PerfDataProto_PerfEventAttr::sample_period() const {
  return sample_period_;
}
inline void PerfDataProto_PerfEventAttr::set_sample_period(::google::protobuf::uint64 value) {
  set_has_sample_period();
  sample_period_ = value;
}

// optional uint64 sample_freq = 5;
inline bool PerfDataProto_PerfEventAttr::has_sample_freq() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void PerfDataProto_PerfEventAttr::set_has_sample_freq() {
  _has_bits_[0] |= 0x00000010u;
}
inline void PerfDataProto_PerfEventAttr::clear_has_sample_freq() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void PerfDataProto_PerfEventAttr::clear_sample_freq() {
  sample_freq_ = GOOGLE_ULONGLONG(0);
  clear_has_sample_freq();
}
inline ::google::protobuf::uint64 PerfDataProto_PerfEventAttr::sample_freq() const {
  return sample_freq_;
}
inline void PerfDataProto_PerfEventAttr::set_sample_freq(::google::protobuf::uint64 value) {
  set_has_sample_freq();
  sample_freq_ = value;
}

// optional uint64 sample_type = 6;
inline bool PerfDataProto_PerfEventAttr::has_sample_type() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void PerfDataProto_PerfEventAttr::set_has_sample_type() {
  _has_bits_[0] |= 0x00000020u;
}
inline void PerfDataProto_PerfEventAttr::clear_has_sample_type() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void PerfDataProto_PerfEventAttr::clear_sample_type() {
  sample_type_ = GOOGLE_ULONGLONG(0);
  clear_has_sample_type();
}
inline ::google::protobuf::uint64 PerfDataProto_PerfEventAttr::sample_type() const {
  return sample_type_;
}
inline void PerfDataProto_PerfEventAttr::set_sample_type(::google::protobuf::uint64 value) {
  set_has_sample_type();
  sample_type_ = value;
}

// optional uint64 read_format = 7;
inline bool PerfDataProto_PerfEventAttr::has_read_format() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void PerfDataProto_PerfEventAttr::set_has_read_format() {
  _has_bits_[0] |= 0x00000040u;
}
inline void PerfDataProto_PerfEventAttr::clear_has_read_format() {
  _has_bits_[0] &= ~0x00000040u;
}
inline void PerfDataProto_PerfEventAttr::clear_read_format() {
  read_format_ = GOOGLE_ULONGLONG(0);
  clear_has_read_format();
}
inline ::google::protobuf::uint64 PerfDataProto_PerfEventAttr::read_format() const {
  return read_format_;
}
inline void PerfDataProto_PerfEventAttr::set_read_format(::google::protobuf::uint64 value) {
  set_has_read_format();
  read_format_ = value;
}

// optional bool disabled = 8;
inline bool PerfDataProto_PerfEventAttr::has_disabled() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void PerfDataProto_PerfEventAttr::set_has_disabled() {
  _has_bits_[0] |= 0x00000080u;
}
inline void PerfDataProto_PerfEventAttr::clear_has_disabled() {
  _has_bits_[0] &= ~0x00000080u;
}
inline void PerfDataProto_PerfEventAttr::clear_disabled() {
  disabled_ = false;
  clear_has_disabled();
}
inline bool PerfDataProto_PerfEventAttr::disabled() const {
  return disabled_;
}
inline void PerfDataProto_PerfEventAttr::set_disabled(bool value) {
  set_has_disabled();
  disabled_ = value;
}

// optional bool inherit = 9;
inline bool PerfDataProto_PerfEventAttr::has_inherit() const {
  return (_has_bits_[0] & 0x00000100u) != 0;
}
inline void PerfDataProto_PerfEventAttr::set_has_inherit() {
  _has_bits_[0] |= 0x00000100u;
}
inline void PerfDataProto_PerfEventAttr::clear_has_inherit() {
  _has_bits_[0] &= ~0x00000100u;
}
inline void PerfDataProto_PerfEventAttr::clear_inherit() {
  inherit_ = false;
  clear_has_inherit();
}
inline bool PerfDataProto_PerfEventAttr::inherit() const {
  return inherit_;
}
inline void PerfDataProto_PerfEventAttr::set_inherit(bool value) {
  set_has_inherit();
  inherit_ = value;
}

// optional bool pinned = 10;
inline bool PerfDataProto_PerfEventAttr::has_pinned() const {
  return (_has_bits_[0] & 0x00000200u) != 0;
}
inline void PerfDataProto_PerfEventAttr::set_has_pinned() {
  _has_bits_[0] |= 0x00000200u;
}
inline void PerfDataProto_PerfEventAttr::clear_has_pinned() {
  _has_bits_[0] &= ~0x00000200u;
}
inline void PerfDataProto_PerfEventAttr::clear_pinned() {
  pinned_ = false;
  clear_has_pinned();
}
inline bool PerfDataProto_PerfEventAttr::pinned() const {
  return pinned_;
}
inline void PerfDataProto_PerfEventAttr::set_pinned(bool value) {
  set_has_pinned();
  pinned_ = value;
}

// optional bool exclusive = 11;
inline bool PerfDataProto_PerfEventAttr::has_exclusive() const {
  return (_has_bits_[0] & 0x00000400u) != 0;
}
inline void PerfDataProto_PerfEventAttr::set_has_exclusive() {
  _has_bits_[0] |= 0x00000400u;
}
inline void PerfDataProto_PerfEventAttr::clear_has_exclusive() {
  _has_bits_[0] &= ~0x00000400u;
}
inline void PerfDataProto_PerfEventAttr::clear_exclusive() {
  exclusive_ = false;
  clear_has_exclusive();
}
inline bool PerfDataProto_PerfEventAttr::exclusive() const {
  return exclusive_;
}
inline void PerfDataProto_PerfEventAttr::set_exclusive(bool value) {
  set_has_exclusive();
  exclusive_ = value;
}

// optional bool exclude_user = 12;
inline bool PerfDataProto_PerfEventAttr::has_exclude_user() const {
  return (_has_bits_[0] & 0x00000800u) != 0;
}
inline void PerfDataProto_PerfEventAttr::set_has_exclude_user() {
  _has_bits_[0] |= 0x00000800u;
}
inline void PerfDataProto_PerfEventAttr::clear_has_exclude_user() {
  _has_bits_[0] &= ~0x00000800u;
}
inline void PerfDataProto_PerfEventAttr::clear_exclude_user() {
  exclude_user_ = false;
  clear_has_exclude_user();
}
inline bool PerfDataProto_PerfEventAttr::exclude_user() const {
  return exclude_user_;
}
inline void PerfDataProto_PerfEventAttr::set_exclude_user(bool value) {
  set_has_exclude_user();
  exclude_user_ = value;
}

// optional bool exclude_kernel = 13;
inline bool PerfDataProto_PerfEventAttr::has_exclude_kernel() const {
  return (_has_bits_[0] & 0x00001000u) != 0;
}
inline void PerfDataProto_PerfEventAttr::set_has_exclude_kernel() {
  _has_bits_[0] |= 0x00001000u;
}
inline void PerfDataProto_PerfEventAttr::clear_has_exclude_kernel() {
  _has_bits_[0] &= ~0x00001000u;
}
inline void PerfDataProto_PerfEventAttr::clear_exclude_kernel() {
  exclude_kernel_ = false;
  clear_has_exclude_kernel();
}
inline bool PerfDataProto_PerfEventAttr::exclude_kernel() const {
  return exclude_kernel_;
}
inline void PerfDataProto_PerfEventAttr::set_exclude_kernel(bool value) {
  set_has_exclude_kernel();
  exclude_kernel_ = value;
}

// optional bool exclude_hv = 14;
inline bool PerfDataProto_PerfEventAttr::has_exclude_hv() const {
  return (_has_bits_[0] & 0x00002000u) != 0;
}
inline void PerfDataProto_PerfEventAttr::set_has_exclude_hv() {
  _has_bits_[0] |= 0x00002000u;
}
inline void PerfDataProto_PerfEventAttr::clear_has_exclude_hv() {
  _has_bits_[0] &= ~0x00002000u;
}
inline void PerfDataProto_PerfEventAttr::clear_exclude_hv() {
  exclude_hv_ = false;
  clear_has_exclude_hv();
}
inline bool PerfDataProto_PerfEventAttr::exclude_hv() const {
  return exclude_hv_;
}
inline void PerfDataProto_PerfEventAttr::set_exclude_hv(bool value) {
  set_has_exclude_hv();
  exclude_hv_ = value;
}

// optional bool exclude_idle = 15;
inline bool PerfDataProto_PerfEventAttr::has_exclude_idle() const {
  return (_has_bits_[0] & 0x00004000u) != 0;
}
inline void PerfDataProto_PerfEventAttr::set_has_exclude_idle() {
  _has_bits_[0] |= 0x00004000u;
}
inline void PerfDataProto_PerfEventAttr::clear_has_exclude_idle() {
  _has_bits_[0] &= ~0x00004000u;
}
inline void PerfDataProto_PerfEventAttr::clear_exclude_idle() {
  exclude_idle_ = false;
  clear_has_exclude_idle();
}
inline bool PerfDataProto_PerfEventAttr::exclude_idle() const {
  return exclude_idle_;
}
inline void PerfDataProto_PerfEventAttr::set_exclude_idle(bool value) {
  set_has_exclude_idle();
  exclude_idle_ = value;
}

// optional bool mmap = 16;
inline bool PerfDataProto_PerfEventAttr::has_mmap() const {
  return (_has_bits_[0] & 0x00008000u) != 0;
}
inline void PerfDataProto_PerfEventAttr::set_has_mmap() {
  _has_bits_[0] |= 0x00008000u;
}
inline void PerfDataProto_PerfEventAttr::clear_has_mmap() {
  _has_bits_[0] &= ~0x00008000u;
}
inline void PerfDataProto_PerfEventAttr::clear_mmap() {
  mmap_ = false;
  clear_has_mmap();
}
inline bool PerfDataProto_PerfEventAttr::mmap() const {
  return mmap_;
}
inline void PerfDataProto_PerfEventAttr::set_mmap(bool value) {
  set_has_mmap();
  mmap_ = value;
}

// optional bool comm = 17;
inline bool PerfDataProto_PerfEventAttr::has_comm() const {
  return (_has_bits_[0] & 0x00010000u) != 0;
}
inline void PerfDataProto_PerfEventAttr::set_has_comm() {
  _has_bits_[0] |= 0x00010000u;
}
inline void PerfDataProto_PerfEventAttr::clear_has_comm() {
  _has_bits_[0] &= ~0x00010000u;
}
inline void PerfDataProto_PerfEventAttr::clear_comm() {
  comm_ = false;
  clear_has_comm();
}
inline bool PerfDataProto_PerfEventAttr::comm() const {
  return comm_;
}
inline void PerfDataProto_PerfEventAttr::set_comm(bool value) {
  set_has_comm();
  comm_ = value;
}

// optional bool freq = 18;
inline bool PerfDataProto_PerfEventAttr::has_freq() const {
  return (_has_bits_[0] & 0x00020000u) != 0;
}
inline void PerfDataProto_PerfEventAttr::set_has_freq() {
  _has_bits_[0] |= 0x00020000u;
}
inline void PerfDataProto_PerfEventAttr::clear_has_freq() {
  _has_bits_[0] &= ~0x00020000u;
}
inline void PerfDataProto_PerfEventAttr::clear_freq() {
  freq_ = false;
  clear_has_freq();
}
inline bool PerfDataProto_PerfEventAttr::freq() const {
  return freq_;
}
inline void PerfDataProto_PerfEventAttr::set_freq(bool value) {
  set_has_freq();
  freq_ = value;
}

// optional bool inherit_stat = 19;
inline bool PerfDataProto_PerfEventAttr::has_inherit_stat() const {
  return (_has_bits_[0] & 0x00040000u) != 0;
}
inline void PerfDataProto_PerfEventAttr::set_has_inherit_stat() {
  _has_bits_[0] |= 0x00040000u;
}
inline void PerfDataProto_PerfEventAttr::clear_has_inherit_stat() {
  _has_bits_[0] &= ~0x00040000u;
}
inline void PerfDataProto_PerfEventAttr::clear_inherit_stat() {
  inherit_stat_ = false;
  clear_has_inherit_stat();
}
inline bool PerfDataProto_PerfEventAttr::inherit_stat() const {
  return inherit_stat_;
}
inline void PerfDataProto_PerfEventAttr::set_inherit_stat(bool value) {
  set_has_inherit_stat();
  inherit_stat_ = value;
}

// optional bool enable_on_exec = 20;
inline bool PerfDataProto_PerfEventAttr::has_enable_on_exec() const {
  return (_has_bits_[0] & 0x00080000u) != 0;
}
inline void PerfDataProto_PerfEventAttr::set_has_enable_on_exec() {
  _has_bits_[0] |= 0x00080000u;
}
inline void PerfDataProto_PerfEventAttr::clear_has_enable_on_exec() {
  _has_bits_[0] &= ~0x00080000u;
}
inline void PerfDataProto_PerfEventAttr::clear_enable_on_exec() {
  enable_on_exec_ = false;
  clear_has_enable_on_exec();
}
inline bool PerfDataProto_PerfEventAttr::enable_on_exec() const {
  return enable_on_exec_;
}
inline void PerfDataProto_PerfEventAttr::set_enable_on_exec(bool value) {
  set_has_enable_on_exec();
  enable_on_exec_ = value;
}

// optional bool task = 21;
inline bool PerfDataProto_PerfEventAttr::has_task() const {
  return (_has_bits_[0] & 0x00100000u) != 0;
}
inline void PerfDataProto_PerfEventAttr::set_has_task() {
  _has_bits_[0] |= 0x00100000u;
}
inline void PerfDataProto_PerfEventAttr::clear_has_task() {
  _has_bits_[0] &= ~0x00100000u;
}
inline void PerfDataProto_PerfEventAttr::clear_task() {
  task_ = false;
  clear_has_task();
}
inline bool PerfDataProto_PerfEventAttr::task() const {
  return task_;
}
inline void PerfDataProto_PerfEventAttr::set_task(bool value) {
  set_has_task();
  task_ = value;
}

// optional bool watermark = 22;
inline bool PerfDataProto_PerfEventAttr::has_watermark() const {
  return (_has_bits_[0] & 0x00200000u) != 0;
}
inline void PerfDataProto_PerfEventAttr::set_has_watermark() {
  _has_bits_[0] |= 0x00200000u;
}
inline void PerfDataProto_PerfEventAttr::clear_has_watermark() {
  _has_bits_[0] &= ~0x00200000u;
}
inline void PerfDataProto_PerfEventAttr::clear_watermark() {
  watermark_ = false;
  clear_has_watermark();
}
inline bool PerfDataProto_PerfEventAttr::watermark() const {
  return watermark_;
}
inline void PerfDataProto_PerfEventAttr::set_watermark(bool value) {
  set_has_watermark();
  watermark_ = value;
}

// optional uint32 precise_ip = 23;
inline bool PerfDataProto_PerfEventAttr::has_precise_ip() const {
  return (_has_bits_[0] & 0x00400000u) != 0;
}
inline void PerfDataProto_PerfEventAttr::set_has_precise_ip() {
  _has_bits_[0] |= 0x00400000u;
}
inline void PerfDataProto_PerfEventAttr::clear_has_precise_ip() {
  _has_bits_[0] &= ~0x00400000u;
}
inline void PerfDataProto_PerfEventAttr::clear_precise_ip() {
  precise_ip_ = 0u;
  clear_has_precise_ip();
}
inline ::google::protobuf::uint32 PerfDataProto_PerfEventAttr::precise_ip() const {
  return precise_ip_;
}
inline void PerfDataProto_PerfEventAttr::set_precise_ip(::google::protobuf::uint32 value) {
  set_has_precise_ip();
  precise_ip_ = value;
}

// optional bool mmap_data = 24;
inline bool PerfDataProto_PerfEventAttr::has_mmap_data() const {
  return (_has_bits_[0] & 0x00800000u) != 0;
}
inline void PerfDataProto_PerfEventAttr::set_has_mmap_data() {
  _has_bits_[0] |= 0x00800000u;
}
inline void PerfDataProto_PerfEventAttr::clear_has_mmap_data() {
  _has_bits_[0] &= ~0x00800000u;
}
inline void PerfDataProto_PerfEventAttr::clear_mmap_data() {
  mmap_data_ = false;
  clear_has_mmap_data();
}
inline bool PerfDataProto_PerfEventAttr::mmap_data() const {
  return mmap_data_;
}
inline void PerfDataProto_PerfEventAttr::set_mmap_data(bool value) {
  set_has_mmap_data();
  mmap_data_ = value;
}

// optional bool sample_id_all = 25;
inline bool PerfDataProto_PerfEventAttr::has_sample_id_all() const {
  return (_has_bits_[0] & 0x01000000u) != 0;
}
inline void PerfDataProto_PerfEventAttr::set_has_sample_id_all() {
  _has_bits_[0] |= 0x01000000u;
}
inline void PerfDataProto_PerfEventAttr::clear_has_sample_id_all() {
  _has_bits_[0] &= ~0x01000000u;
}
inline void PerfDataProto_PerfEventAttr::clear_sample_id_all() {
  sample_id_all_ = false;
  clear_has_sample_id_all();
}
inline bool PerfDataProto_PerfEventAttr::sample_id_all() const {
  return sample_id_all_;
}
inline void PerfDataProto_PerfEventAttr::set_sample_id_all(bool value) {
  set_has_sample_id_all();
  sample_id_all_ = value;
}

// optional bool exclude_host = 26;
inline bool PerfDataProto_PerfEventAttr::has_exclude_host() const {
  return (_has_bits_[0] & 0x02000000u) != 0;
}
inline void PerfDataProto_PerfEventAttr::set_has_exclude_host() {
  _has_bits_[0] |= 0x02000000u;
}
inline void PerfDataProto_PerfEventAttr::clear_has_exclude_host() {
  _has_bits_[0] &= ~0x02000000u;
}
inline void PerfDataProto_PerfEventAttr::clear_exclude_host() {
  exclude_host_ = false;
  clear_has_exclude_host();
}
inline bool PerfDataProto_PerfEventAttr::exclude_host() const {
  return exclude_host_;
}
inline void PerfDataProto_PerfEventAttr::set_exclude_host(bool value) {
  set_has_exclude_host();
  exclude_host_ = value;
}

// optional bool exclude_guest = 27;
inline bool PerfDataProto_PerfEventAttr::has_exclude_guest() const {
  return (_has_bits_[0] & 0x04000000u) != 0;
}
inline void PerfDataProto_PerfEventAttr::set_has_exclude_guest() {
  _has_bits_[0] |= 0x04000000u;
}
inline void PerfDataProto_PerfEventAttr::clear_has_exclude_guest() {
  _has_bits_[0] &= ~0x04000000u;
}
inline void PerfDataProto_PerfEventAttr::clear_exclude_guest() {
  exclude_guest_ = false;
  clear_has_exclude_guest();
}
inline bool PerfDataProto_PerfEventAttr::exclude_guest() const {
  return exclude_guest_;
}
inline void PerfDataProto_PerfEventAttr::set_exclude_guest(bool value) {
  set_has_exclude_guest();
  exclude_guest_ = value;
}

// optional bool exclude_callchain_kernel = 36;
inline bool PerfDataProto_PerfEventAttr::has_exclude_callchain_kernel() const {
  return (_has_bits_[0] & 0x08000000u) != 0;
}
inline void PerfDataProto_PerfEventAttr::set_has_exclude_callchain_kernel() {
  _has_bits_[0] |= 0x08000000u;
}
inline void PerfDataProto_PerfEventAttr::clear_has_exclude_callchain_kernel() {
  _has_bits_[0] &= ~0x08000000u;
}
inline void PerfDataProto_PerfEventAttr::clear_exclude_callchain_kernel() {
  exclude_callchain_kernel_ = false;
  clear_has_exclude_callchain_kernel();
}
inline bool PerfDataProto_PerfEventAttr::exclude_callchain_kernel() const {
  return exclude_callchain_kernel_;
}
inline void PerfDataProto_PerfEventAttr::set_exclude_callchain_kernel(bool value) {
  set_has_exclude_callchain_kernel();
  exclude_callchain_kernel_ = value;
}

// optional bool exclude_callchain_user = 37;
inline bool PerfDataProto_PerfEventAttr::has_exclude_callchain_user() const {
  return (_has_bits_[0] & 0x10000000u) != 0;
}
inline void PerfDataProto_PerfEventAttr::set_has_exclude_callchain_user() {
  _has_bits_[0] |= 0x10000000u;
}
inline void PerfDataProto_PerfEventAttr::clear_has_exclude_callchain_user() {
  _has_bits_[0] &= ~0x10000000u;
}
inline void PerfDataProto_PerfEventAttr::clear_exclude_callchain_user() {
  exclude_callchain_user_ = false;
  clear_has_exclude_callchain_user();
}
inline bool PerfDataProto_PerfEventAttr::exclude_callchain_user() const {
  return exclude_callchain_user_;
}
inline void PerfDataProto_PerfEventAttr::set_exclude_callchain_user(bool value) {
  set_has_exclude_callchain_user();
  exclude_callchain_user_ = value;
}

// optional bool mmap2 = 38;
inline bool PerfDataProto_PerfEventAttr::has_mmap2() const {
  return (_has_bits_[0] & 0x20000000u) != 0;
}
inline void PerfDataProto_PerfEventAttr::set_has_mmap2() {
  _has_bits_[0] |= 0x20000000u;
}
inline void PerfDataProto_PerfEventAttr::clear_has_mmap2() {
  _has_bits_[0] &= ~0x20000000u;
}
inline void PerfDataProto_PerfEventAttr::clear_mmap2() {
  mmap2_ = false;
  clear_has_mmap2();
}
inline bool PerfDataProto_PerfEventAttr::mmap2() const {
  return mmap2_;
}
inline void PerfDataProto_PerfEventAttr::set_mmap2(bool value) {
  set_has_mmap2();
  mmap2_ = value;
}

// optional bool comm_exec = 39;
inline bool PerfDataProto_PerfEventAttr::has_comm_exec() const {
  return (_has_bits_[0] & 0x40000000u) != 0;
}
inline void PerfDataProto_PerfEventAttr::set_has_comm_exec() {
  _has_bits_[0] |= 0x40000000u;
}
inline void PerfDataProto_PerfEventAttr::clear_has_comm_exec() {
  _has_bits_[0] &= ~0x40000000u;
}
inline void PerfDataProto_PerfEventAttr::clear_comm_exec() {
  comm_exec_ = false;
  clear_has_comm_exec();
}
inline bool PerfDataProto_PerfEventAttr::comm_exec() const {
  return comm_exec_;
}
inline void PerfDataProto_PerfEventAttr::set_comm_exec(bool value) {
  set_has_comm_exec();
  comm_exec_ = value;
}

// optional uint32 wakeup_events = 28;
inline bool PerfDataProto_PerfEventAttr::has_wakeup_events() const {
  return (_has_bits_[0] & 0x80000000u) != 0;
}
inline void PerfDataProto_PerfEventAttr::set_has_wakeup_events() {
  _has_bits_[0] |= 0x80000000u;
}
inline void PerfDataProto_PerfEventAttr::clear_has_wakeup_events() {
  _has_bits_[0] &= ~0x80000000u;
}
inline void PerfDataProto_PerfEventAttr::clear_wakeup_events() {
  wakeup_events_ = 0u;
  clear_has_wakeup_events();
}
inline ::google::protobuf::uint32 PerfDataProto_PerfEventAttr::wakeup_events() const {
  return wakeup_events_;
}
inline void PerfDataProto_PerfEventAttr::set_wakeup_events(::google::protobuf::uint32 value) {
  set_has_wakeup_events();
  wakeup_events_ = value;
}

// optional uint32 wakeup_watermark = 29;
inline bool PerfDataProto_PerfEventAttr::has_wakeup_watermark() const {
  return (_has_bits_[1] & 0x00000001u) != 0;
}
inline void PerfDataProto_PerfEventAttr::set_has_wakeup_watermark() {
  _has_bits_[1] |= 0x00000001u;
}
inline void PerfDataProto_PerfEventAttr::clear_has_wakeup_watermark() {
  _has_bits_[1] &= ~0x00000001u;
}
inline void PerfDataProto_PerfEventAttr::clear_wakeup_watermark() {
  wakeup_watermark_ = 0u;
  clear_has_wakeup_watermark();
}
inline ::google::protobuf::uint32 PerfDataProto_PerfEventAttr::wakeup_watermark() const {
  return wakeup_watermark_;
}
inline void PerfDataProto_PerfEventAttr::set_wakeup_watermark(::google::protobuf::uint32 value) {
  set_has_wakeup_watermark();
  wakeup_watermark_ = value;
}

// optional uint32 bp_type = 30;
inline bool PerfDataProto_PerfEventAttr::has_bp_type() const {
  return (_has_bits_[1] & 0x00000002u) != 0;
}
inline void PerfDataProto_PerfEventAttr::set_has_bp_type() {
  _has_bits_[1] |= 0x00000002u;
}
inline void PerfDataProto_PerfEventAttr::clear_has_bp_type() {
  _has_bits_[1] &= ~0x00000002u;
}
inline void PerfDataProto_PerfEventAttr::clear_bp_type() {
  bp_type_ = 0u;
  clear_has_bp_type();
}
inline ::google::protobuf::uint32 PerfDataProto_PerfEventAttr::bp_type() const {
  return bp_type_;
}
inline void PerfDataProto_PerfEventAttr::set_bp_type(::google::protobuf::uint32 value) {
  set_has_bp_type();
  bp_type_ = value;
}

// optional uint64 bp_addr = 31;
inline bool PerfDataProto_PerfEventAttr::has_bp_addr() const {
  return (_has_bits_[1] & 0x00000004u) != 0;
}
inline void PerfDataProto_PerfEventAttr::set_has_bp_addr() {
  _has_bits_[1] |= 0x00000004u;
}
inline void PerfDataProto_PerfEventAttr::clear_has_bp_addr() {
  _has_bits_[1] &= ~0x00000004u;
}
inline void PerfDataProto_PerfEventAttr::clear_bp_addr() {
  bp_addr_ = GOOGLE_ULONGLONG(0);
  clear_has_bp_addr();
}
inline ::google::protobuf::uint64 PerfDataProto_PerfEventAttr::bp_addr() const {
  return bp_addr_;
}
inline void PerfDataProto_PerfEventAttr::set_bp_addr(::google::protobuf::uint64 value) {
  set_has_bp_addr();
  bp_addr_ = value;
}

// optional uint64 config1 = 32;
inline bool PerfDataProto_PerfEventAttr::has_config1() const {
  return (_has_bits_[1] & 0x00000008u) != 0;
}
inline void PerfDataProto_PerfEventAttr::set_has_config1() {
  _has_bits_[1] |= 0x00000008u;
}
inline void PerfDataProto_PerfEventAttr::clear_has_config1() {
  _has_bits_[1] &= ~0x00000008u;
}
inline void PerfDataProto_PerfEventAttr::clear_config1() {
  config1_ = GOOGLE_ULONGLONG(0);
  clear_has_config1();
}
inline ::google::protobuf::uint64 PerfDataProto_PerfEventAttr::config1() const {
  return config1_;
}
inline void PerfDataProto_PerfEventAttr::set_config1(::google::protobuf::uint64 value) {
  set_has_config1();
  config1_ = value;
}

// optional uint64 bp_len = 33;
inline bool PerfDataProto_PerfEventAttr::has_bp_len() const {
  return (_has_bits_[1] & 0x00000010u) != 0;
}
inline void PerfDataProto_PerfEventAttr::set_has_bp_len() {
  _has_bits_[1] |= 0x00000010u;
}
inline void PerfDataProto_PerfEventAttr::clear_has_bp_len() {
  _has_bits_[1] &= ~0x00000010u;
}
inline void PerfDataProto_PerfEventAttr::clear_bp_len() {
  bp_len_ = GOOGLE_ULONGLONG(0);
  clear_has_bp_len();
}
inline ::google::protobuf::uint64 PerfDataProto_PerfEventAttr::bp_len() const {
  return bp_len_;
}
inline void PerfDataProto_PerfEventAttr::set_bp_len(::google::protobuf::uint64 value) {
  set_has_bp_len();
  bp_len_ = value;
}

// optional uint64 config2 = 34;
inline bool PerfDataProto_PerfEventAttr::has_config2() const {
  return (_has_bits_[1] & 0x00000020u) != 0;
}
inline void PerfDataProto_PerfEventAttr::set_has_config2() {
  _has_bits_[1] |= 0x00000020u;
}
inline void PerfDataProto_PerfEventAttr::clear_has_config2() {
  _has_bits_[1] &= ~0x00000020u;
}
inline void PerfDataProto_PerfEventAttr::clear_config2() {
  config2_ = GOOGLE_ULONGLONG(0);
  clear_has_config2();
}
inline ::google::protobuf::uint64 PerfDataProto_PerfEventAttr::config2() const {
  return config2_;
}
inline void PerfDataProto_PerfEventAttr::set_config2(::google::protobuf::uint64 value) {
  set_has_config2();
  config2_ = value;
}

// optional uint64 branch_sample_type = 35;
inline bool PerfDataProto_PerfEventAttr::has_branch_sample_type() const {
  return (_has_bits_[1] & 0x00000040u) != 0;
}
inline void PerfDataProto_PerfEventAttr::set_has_branch_sample_type() {
  _has_bits_[1] |= 0x00000040u;
}
inline void PerfDataProto_PerfEventAttr::clear_has_branch_sample_type() {
  _has_bits_[1] &= ~0x00000040u;
}
inline void PerfDataProto_PerfEventAttr::clear_branch_sample_type() {
  branch_sample_type_ = GOOGLE_ULONGLONG(0);
  clear_has_branch_sample_type();
}
inline ::google::protobuf::uint64 PerfDataProto_PerfEventAttr::branch_sample_type() const {
  return branch_sample_type_;
}
inline void PerfDataProto_PerfEventAttr::set_branch_sample_type(::google::protobuf::uint64 value) {
  set_has_branch_sample_type();
  branch_sample_type_ = value;
}

// optional uint64 sample_regs_user = 40;
inline bool PerfDataProto_PerfEventAttr::has_sample_regs_user() const {
  return (_has_bits_[1] & 0x00000080u) != 0;
}
inline void PerfDataProto_PerfEventAttr::set_has_sample_regs_user() {
  _has_bits_[1] |= 0x00000080u;
}
inline void PerfDataProto_PerfEventAttr::clear_has_sample_regs_user() {
  _has_bits_[1] &= ~0x00000080u;
}
inline void PerfDataProto_PerfEventAttr::clear_sample_regs_user() {
  sample_regs_user_ = GOOGLE_ULONGLONG(0);
  clear_has_sample_regs_user();
}
inline ::google::protobuf::uint64 PerfDataProto_PerfEventAttr::sample_regs_user() const {
  return sample_regs_user_;
}
inline void PerfDataProto_PerfEventAttr::set_sample_regs_user(::google::protobuf::uint64 value) {
  set_has_sample_regs_user();
  sample_regs_user_ = value;
}

// optional uint32 sample_stack_user = 41;
inline bool PerfDataProto_PerfEventAttr::has_sample_stack_user() const {
  return (_has_bits_[1] & 0x00000100u) != 0;
}
inline void PerfDataProto_PerfEventAttr::set_has_sample_stack_user() {
  _has_bits_[1] |= 0x00000100u;
}
inline void PerfDataProto_PerfEventAttr::clear_has_sample_stack_user() {
  _has_bits_[1] &= ~0x00000100u;
}
inline void PerfDataProto_PerfEventAttr::clear_sample_stack_user() {
  sample_stack_user_ = 0u;
  clear_has_sample_stack_user();
}
inline ::google::protobuf::uint32 PerfDataProto_PerfEventAttr::sample_stack_user() const {
  return sample_stack_user_;
}
inline void PerfDataProto_PerfEventAttr::set_sample_stack_user(::google::protobuf::uint32 value) {
  set_has_sample_stack_user();
  sample_stack_user_ = value;
}

// -------------------------------------------------------------------

// PerfDataProto_PerfFileAttr

// optional .quipper.PerfDataProto.PerfEventAttr attr = 1;
inline bool PerfDataProto_PerfFileAttr::has_attr() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void PerfDataProto_PerfFileAttr::set_has_attr() {
  _has_bits_[0] |= 0x00000001u;
}
inline void PerfDataProto_PerfFileAttr::clear_has_attr() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void PerfDataProto_PerfFileAttr::clear_attr() {
  if (attr_ != NULL) attr_->::quipper::PerfDataProto_PerfEventAttr::Clear();
  clear_has_attr();
}
inline const ::quipper::PerfDataProto_PerfEventAttr& PerfDataProto_PerfFileAttr::attr() const {
  return attr_ != NULL ? *attr_ : *default_instance_->attr_;
}
inline ::quipper::PerfDataProto_PerfEventAttr* PerfDataProto_PerfFileAttr::mutable_attr() {
  set_has_attr();
  if (attr_ == NULL) attr_ = new ::quipper::PerfDataProto_PerfEventAttr;
  return attr_;
}
inline ::quipper::PerfDataProto_PerfEventAttr* PerfDataProto_PerfFileAttr::release_attr() {
  clear_has_attr();
  ::quipper::PerfDataProto_PerfEventAttr* temp = attr_;
  attr_ = NULL;
  return temp;
}
inline void PerfDataProto_PerfFileAttr::set_allocated_attr(::quipper::PerfDataProto_PerfEventAttr* attr) {
  delete attr_;
  attr_ = attr;
  if (attr) {
    set_has_attr();
  } else {
    clear_has_attr();
  }
}

// repeated uint64 ids = 2;
inline int PerfDataProto_PerfFileAttr::ids_size() const {
  return ids_.size();
}
inline void PerfDataProto_PerfFileAttr::clear_ids() {
  ids_.Clear();
}
inline ::google::protobuf::uint64 PerfDataProto_PerfFileAttr::ids(int index) const {
  return ids_.Get(index);
}
inline void PerfDataProto_PerfFileAttr::set_ids(int index, ::google::protobuf::uint64 value) {
  ids_.Set(index, value);
}
inline void PerfDataProto_PerfFileAttr::add_ids(::google::protobuf::uint64 value) {
  ids_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
PerfDataProto_PerfFileAttr::ids() const {
  return ids_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
PerfDataProto_PerfFileAttr::mutable_ids() {
  return &ids_;
}

// -------------------------------------------------------------------

// PerfDataProto_PerfEventType

// optional uint64 id = 1;
inline bool PerfDataProto_PerfEventType::has_id() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void PerfDataProto_PerfEventType::set_has_id() {
  _has_bits_[0] |= 0x00000001u;
}
inline void PerfDataProto_PerfEventType::clear_has_id() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void PerfDataProto_PerfEventType::clear_id() {
  id_ = GOOGLE_ULONGLONG(0);
  clear_has_id();
}
inline ::google::protobuf::uint64 PerfDataProto_PerfEventType::id() const {
  return id_;
}
inline void PerfDataProto_PerfEventType::set_id(::google::protobuf::uint64 value) {
  set_has_id();
  id_ = value;
}

// optional string name = 2;
inline bool PerfDataProto_PerfEventType::has_name() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void PerfDataProto_PerfEventType::set_has_name() {
  _has_bits_[0] |= 0x00000002u;
}
inline void PerfDataProto_PerfEventType::clear_has_name() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void PerfDataProto_PerfEventType::clear_name() {
  if (name_ != &::google::protobuf::internal::kEmptyString) {
    name_->clear();
  }
  clear_has_name();
}
inline const ::std::string& PerfDataProto_PerfEventType::name() const {
  return *name_;
}
inline void PerfDataProto_PerfEventType::set_name(const ::std::string& value) {
  set_has_name();
  if (name_ == &::google::protobuf::internal::kEmptyString) {
    name_ = new ::std::string;
  }
  name_->assign(value);
}
inline void PerfDataProto_PerfEventType::set_name(const char* value) {
  set_has_name();
  if (name_ == &::google::protobuf::internal::kEmptyString) {
    name_ = new ::std::string;
  }
  name_->assign(value);
}
inline void PerfDataProto_PerfEventType::set_name(const char* value, size_t size) {
  set_has_name();
  if (name_ == &::google::protobuf::internal::kEmptyString) {
    name_ = new ::std::string;
  }
  name_->assign(reinterpret_cast<const char*>(value), size);
}
inline ::std::string* PerfDataProto_PerfEventType::mutable_name() {
  set_has_name();
  if (name_ == &::google::protobuf::internal::kEmptyString) {
    name_ = new ::std::string;
  }
  return name_;
}
inline ::std::string* PerfDataProto_PerfEventType::release_name() {
  clear_has_name();
  if (name_ == &::google::protobuf::internal::kEmptyString) {
    return NULL;
  } else {
    ::std::string* temp = name_;
    name_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
    return temp;
  }
}
inline void PerfDataProto_PerfEventType::set_allocated_name(::std::string* name) {
  if (name_ != &::google::protobuf::internal::kEmptyString) {
    delete name_;
  }
  if (name) {
    set_has_name();
    name_ = name;
  } else {
    clear_has_name();
    name_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
  }
}

// optional uint64 name_md5_prefix = 3;
inline bool PerfDataProto_PerfEventType::has_name_md5_prefix() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void PerfDataProto_PerfEventType::set_has_name_md5_prefix() {
  _has_bits_[0] |= 0x00000004u;
}
inline void PerfDataProto_PerfEventType::clear_has_name_md5_prefix() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void PerfDataProto_PerfEventType::clear_name_md5_prefix() {
  name_md5_prefix_ = GOOGLE_ULONGLONG(0);
  clear_has_name_md5_prefix();
}
inline ::google::protobuf::uint64 PerfDataProto_PerfEventType::name_md5_prefix() const {
  return name_md5_prefix_;
}
inline void PerfDataProto_PerfEventType::set_name_md5_prefix(::google::protobuf::uint64 value) {
  set_has_name_md5_prefix();
  name_md5_prefix_ = value;
}

// -------------------------------------------------------------------

// PerfDataProto_SampleInfo

// optional uint32 pid = 1;
inline bool PerfDataProto_SampleInfo::has_pid() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void PerfDataProto_SampleInfo::set_has_pid() {
  _has_bits_[0] |= 0x00000001u;
}
inline void PerfDataProto_SampleInfo::clear_has_pid() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void PerfDataProto_SampleInfo::clear_pid() {
  pid_ = 0u;
  clear_has_pid();
}
inline ::google::protobuf::uint32 PerfDataProto_SampleInfo::pid() const {
  return pid_;
}
inline void PerfDataProto_SampleInfo::set_pid(::google::protobuf::uint32 value) {
  set_has_pid();
  pid_ = value;
}

// optional uint32 tid = 2;
inline bool PerfDataProto_SampleInfo::has_tid() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void PerfDataProto_SampleInfo::set_has_tid() {
  _has_bits_[0] |= 0x00000002u;
}
inline void PerfDataProto_SampleInfo::clear_has_tid() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void PerfDataProto_SampleInfo::clear_tid() {
  tid_ = 0u;
  clear_has_tid();
}
inline ::google::protobuf::uint32 PerfDataProto_SampleInfo::tid() const {
  return tid_;
}
inline void PerfDataProto_SampleInfo::set_tid(::google::protobuf::uint32 value) {
  set_has_tid();
  tid_ = value;
}

// optional uint64 sample_time_ns = 3;
inline bool PerfDataProto_SampleInfo::has_sample_time_ns() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void PerfDataProto_SampleInfo::set_has_sample_time_ns() {
  _has_bits_[0] |= 0x00000004u;
}
inline void PerfDataProto_SampleInfo::clear_has_sample_time_ns() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void PerfDataProto_SampleInfo::clear_sample_time_ns() {
  sample_time_ns_ = GOOGLE_ULONGLONG(0);
  clear_has_sample_time_ns();
}
inline ::google::protobuf::uint64 PerfDataProto_SampleInfo::sample_time_ns() const {
  return sample_time_ns_;
}
inline void PerfDataProto_SampleInfo::set_sample_time_ns(::google::protobuf::uint64 value) {
  set_has_sample_time_ns();
  sample_time_ns_ = value;
}

// optional uint64 id = 4;
inline bool PerfDataProto_SampleInfo::has_id() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void PerfDataProto_SampleInfo::set_has_id() {
  _has_bits_[0] |= 0x00000008u;
}
inline void PerfDataProto_SampleInfo::clear_has_id() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void PerfDataProto_SampleInfo::clear_id() {
  id_ = GOOGLE_ULONGLONG(0);
  clear_has_id();
}
inline ::google::protobuf::uint64 PerfDataProto_SampleInfo::id() const {
  return id_;
}
inline void PerfDataProto_SampleInfo::set_id(::google::protobuf::uint64 value) {
  set_has_id();
  id_ = value;
}

// optional uint32 cpu = 5;
inline bool PerfDataProto_SampleInfo::has_cpu() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void PerfDataProto_SampleInfo::set_has_cpu() {
  _has_bits_[0] |= 0x00000010u;
}
inline void PerfDataProto_SampleInfo::clear_has_cpu() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void PerfDataProto_SampleInfo::clear_cpu() {
  cpu_ = 0u;
  clear_has_cpu();
}
inline ::google::protobuf::uint32 PerfDataProto_SampleInfo::cpu() const {
  return cpu_;
}
inline void PerfDataProto_SampleInfo::set_cpu(::google::protobuf::uint32 value) {
  set_has_cpu();
  cpu_ = value;
}

// -------------------------------------------------------------------

// PerfDataProto_CommEvent

// optional uint32 pid = 1;
inline bool PerfDataProto_CommEvent::has_pid() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void PerfDataProto_CommEvent::set_has_pid() {
  _has_bits_[0] |= 0x00000001u;
}
inline void PerfDataProto_CommEvent::clear_has_pid() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void PerfDataProto_CommEvent::clear_pid() {
  pid_ = 0u;
  clear_has_pid();
}
inline ::google::protobuf::uint32 PerfDataProto_CommEvent::pid() const {
  return pid_;
}
inline void PerfDataProto_CommEvent::set_pid(::google::protobuf::uint32 value) {
  set_has_pid();
  pid_ = value;
}

// optional uint32 tid = 2;
inline bool PerfDataProto_CommEvent::has_tid() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void PerfDataProto_CommEvent::set_has_tid() {
  _has_bits_[0] |= 0x00000002u;
}
inline void PerfDataProto_CommEvent::clear_has_tid() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void PerfDataProto_CommEvent::clear_tid() {
  tid_ = 0u;
  clear_has_tid();
}
inline ::google::protobuf::uint32 PerfDataProto_CommEvent::tid() const {
  return tid_;
}
inline void PerfDataProto_CommEvent::set_tid(::google::protobuf::uint32 value) {
  set_has_tid();
  tid_ = value;
}

// optional string comm = 3;
inline bool PerfDataProto_CommEvent::has_comm() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void PerfDataProto_CommEvent::set_has_comm() {
  _has_bits_[0] |= 0x00000004u;
}
inline void PerfDataProto_CommEvent::clear_has_comm() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void PerfDataProto_CommEvent::clear_comm() {
  if (comm_ != &::google::protobuf::internal::kEmptyString) {
    comm_->clear();
  }
  clear_has_comm();
}
inline const ::std::string& PerfDataProto_CommEvent::comm() const {
  return *comm_;
}
inline void PerfDataProto_CommEvent::set_comm(const ::std::string& value) {
  set_has_comm();
  if (comm_ == &::google::protobuf::internal::kEmptyString) {
    comm_ = new ::std::string;
  }
  comm_->assign(value);
}
inline void PerfDataProto_CommEvent::set_comm(const char* value) {
  set_has_comm();
  if (comm_ == &::google::protobuf::internal::kEmptyString) {
    comm_ = new ::std::string;
  }
  comm_->assign(value);
}
inline void PerfDataProto_CommEvent::set_comm(const char* value, size_t size) {
  set_has_comm();
  if (comm_ == &::google::protobuf::internal::kEmptyString) {
    comm_ = new ::std::string;
  }
  comm_->assign(reinterpret_cast<const char*>(value), size);
}
inline ::std::string* PerfDataProto_CommEvent::mutable_comm() {
  set_has_comm();
  if (comm_ == &::google::protobuf::internal::kEmptyString) {
    comm_ = new ::std::string;
  }
  return comm_;
}
inline ::std::string* PerfDataProto_CommEvent::release_comm() {
  clear_has_comm();
  if (comm_ == &::google::protobuf::internal::kEmptyString) {
    return NULL;
  } else {
    ::std::string* temp = comm_;
    comm_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
    return temp;
  }
}
inline void PerfDataProto_CommEvent::set_allocated_comm(::std::string* comm) {
  if (comm_ != &::google::protobuf::internal::kEmptyString) {
    delete comm_;
  }
  if (comm) {
    set_has_comm();
    comm_ = comm;
  } else {
    clear_has_comm();
    comm_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
  }
}

// optional uint64 comm_md5_prefix = 4;
inline bool PerfDataProto_CommEvent::has_comm_md5_prefix() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void PerfDataProto_CommEvent::set_has_comm_md5_prefix() {
  _has_bits_[0] |= 0x00000008u;
}
inline void PerfDataProto_CommEvent::clear_has_comm_md5_prefix() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void PerfDataProto_CommEvent::clear_comm_md5_prefix() {
  comm_md5_prefix_ = GOOGLE_ULONGLONG(0);
  clear_has_comm_md5_prefix();
}
inline ::google::protobuf::uint64 PerfDataProto_CommEvent::comm_md5_prefix() const {
  return comm_md5_prefix_;
}
inline void PerfDataProto_CommEvent::set_comm_md5_prefix(::google::protobuf::uint64 value) {
  set_has_comm_md5_prefix();
  comm_md5_prefix_ = value;
}

// optional uint64 sample_time = 5 [deprecated = true];
inline bool PerfDataProto_CommEvent::has_sample_time() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void PerfDataProto_CommEvent::set_has_sample_time() {
  _has_bits_[0] |= 0x00000010u;
}
inline void PerfDataProto_CommEvent::clear_has_sample_time() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void PerfDataProto_CommEvent::clear_sample_time() {
  sample_time_ = GOOGLE_ULONGLONG(0);
  clear_has_sample_time();
}
inline ::google::protobuf::uint64 PerfDataProto_CommEvent::sample_time() const {
  return sample_time_;
}
inline void PerfDataProto_CommEvent::set_sample_time(::google::protobuf::uint64 value) {
  set_has_sample_time();
  sample_time_ = value;
}

// optional .quipper.PerfDataProto.SampleInfo sample_info = 6;
inline bool PerfDataProto_CommEvent::has_sample_info() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void PerfDataProto_CommEvent::set_has_sample_info() {
  _has_bits_[0] |= 0x00000020u;
}
inline void PerfDataProto_CommEvent::clear_has_sample_info() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void PerfDataProto_CommEvent::clear_sample_info() {
  if (sample_info_ != NULL) sample_info_->::quipper::PerfDataProto_SampleInfo::Clear();
  clear_has_sample_info();
}
inline const ::quipper::PerfDataProto_SampleInfo& PerfDataProto_CommEvent::sample_info() const {
  return sample_info_ != NULL ? *sample_info_ : *default_instance_->sample_info_;
}
inline ::quipper::PerfDataProto_SampleInfo* PerfDataProto_CommEvent::mutable_sample_info() {
  set_has_sample_info();
  if (sample_info_ == NULL) sample_info_ = new ::quipper::PerfDataProto_SampleInfo;
  return sample_info_;
}
inline ::quipper::PerfDataProto_SampleInfo* PerfDataProto_CommEvent::release_sample_info() {
  clear_has_sample_info();
  ::quipper::PerfDataProto_SampleInfo* temp = sample_info_;
  sample_info_ = NULL;
  return temp;
}
inline void PerfDataProto_CommEvent::set_allocated_sample_info(::quipper::PerfDataProto_SampleInfo* sample_info) {
  delete sample_info_;
  sample_info_ = sample_info;
  if (sample_info) {
    set_has_sample_info();
  } else {
    clear_has_sample_info();
  }
}

// -------------------------------------------------------------------

// PerfDataProto_MMapEvent

// optional uint32 pid = 1;
inline bool PerfDataProto_MMapEvent::has_pid() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void PerfDataProto_MMapEvent::set_has_pid() {
  _has_bits_[0] |= 0x00000001u;
}
inline void PerfDataProto_MMapEvent::clear_has_pid() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void PerfDataProto_MMapEvent::clear_pid() {
  pid_ = 0u;
  clear_has_pid();
}
inline ::google::protobuf::uint32 PerfDataProto_MMapEvent::pid() const {
  return pid_;
}
inline void PerfDataProto_MMapEvent::set_pid(::google::protobuf::uint32 value) {
  set_has_pid();
  pid_ = value;
}

// optional uint32 tid = 2;
inline bool PerfDataProto_MMapEvent::has_tid() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void PerfDataProto_MMapEvent::set_has_tid() {
  _has_bits_[0] |= 0x00000002u;
}
inline void PerfDataProto_MMapEvent::clear_has_tid() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void PerfDataProto_MMapEvent::clear_tid() {
  tid_ = 0u;
  clear_has_tid();
}
inline ::google::protobuf::uint32 PerfDataProto_MMapEvent::tid() const {
  return tid_;
}
inline void PerfDataProto_MMapEvent::set_tid(::google::protobuf::uint32 value) {
  set_has_tid();
  tid_ = value;
}

// optional uint64 start = 3;
inline bool PerfDataProto_MMapEvent::has_start() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void PerfDataProto_MMapEvent::set_has_start() {
  _has_bits_[0] |= 0x00000004u;
}
inline void PerfDataProto_MMapEvent::clear_has_start() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void PerfDataProto_MMapEvent::clear_start() {
  start_ = GOOGLE_ULONGLONG(0);
  clear_has_start();
}
inline ::google::protobuf::uint64 PerfDataProto_MMapEvent::start() const {
  return start_;
}
inline void PerfDataProto_MMapEvent::set_start(::google::protobuf::uint64 value) {
  set_has_start();
  start_ = value;
}

// optional uint64 len = 4;
inline bool PerfDataProto_MMapEvent::has_len() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void PerfDataProto_MMapEvent::set_has_len() {
  _has_bits_[0] |= 0x00000008u;
}
inline void PerfDataProto_MMapEvent::clear_has_len() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void PerfDataProto_MMapEvent::clear_len() {
  len_ = GOOGLE_ULONGLONG(0);
  clear_has_len();
}
inline ::google::protobuf::uint64 PerfDataProto_MMapEvent::len() const {
  return len_;
}
inline void PerfDataProto_MMapEvent::set_len(::google::protobuf::uint64 value) {
  set_has_len();
  len_ = value;
}

// optional uint64 pgoff = 5;
inline bool PerfDataProto_MMapEvent::has_pgoff() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void PerfDataProto_MMapEvent::set_has_pgoff() {
  _has_bits_[0] |= 0x00000010u;
}
inline void PerfDataProto_MMapEvent::clear_has_pgoff() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void PerfDataProto_MMapEvent::clear_pgoff() {
  pgoff_ = GOOGLE_ULONGLONG(0);
  clear_has_pgoff();
}
inline ::google::protobuf::uint64 PerfDataProto_MMapEvent::pgoff() const {
  return pgoff_;
}
inline void PerfDataProto_MMapEvent::set_pgoff(::google::protobuf::uint64 value) {
  set_has_pgoff();
  pgoff_ = value;
}

// optional uint32 maj = 9;
inline bool PerfDataProto_MMapEvent::has_maj() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void PerfDataProto_MMapEvent::set_has_maj() {
  _has_bits_[0] |= 0x00000020u;
}
inline void PerfDataProto_MMapEvent::clear_has_maj() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void PerfDataProto_MMapEvent::clear_maj() {
  maj_ = 0u;
  clear_has_maj();
}
inline ::google::protobuf::uint32 PerfDataProto_MMapEvent::maj() const {
  return maj_;
}
inline void PerfDataProto_MMapEvent::set_maj(::google::protobuf::uint32 value) {
  set_has_maj();
  maj_ = value;
}

// optional uint32 min = 10;
inline bool PerfDataProto_MMapEvent::has_min() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void PerfDataProto_MMapEvent::set_has_min() {
  _has_bits_[0] |= 0x00000040u;
}
inline void PerfDataProto_MMapEvent::clear_has_min() {
  _has_bits_[0] &= ~0x00000040u;
}
inline void PerfDataProto_MMapEvent::clear_min() {
  min_ = 0u;
  clear_has_min();
}
inline ::google::protobuf::uint32 PerfDataProto_MMapEvent::min() const {
  return min_;
}
inline void PerfDataProto_MMapEvent::set_min(::google::protobuf::uint32 value) {
  set_has_min();
  min_ = value;
}

// optional uint64 ino = 11;
inline bool PerfDataProto_MMapEvent::has_ino() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void PerfDataProto_MMapEvent::set_has_ino() {
  _has_bits_[0] |= 0x00000080u;
}
inline void PerfDataProto_MMapEvent::clear_has_ino() {
  _has_bits_[0] &= ~0x00000080u;
}
inline void PerfDataProto_MMapEvent::clear_ino() {
  ino_ = GOOGLE_ULONGLONG(0);
  clear_has_ino();
}
inline ::google::protobuf::uint64 PerfDataProto_MMapEvent::ino() const {
  return ino_;
}
inline void PerfDataProto_MMapEvent::set_ino(::google::protobuf::uint64 value) {
  set_has_ino();
  ino_ = value;
}

// optional uint64 ino_generation = 12;
inline bool PerfDataProto_MMapEvent::has_ino_generation() const {
  return (_has_bits_[0] & 0x00000100u) != 0;
}
inline void PerfDataProto_MMapEvent::set_has_ino_generation() {
  _has_bits_[0] |= 0x00000100u;
}
inline void PerfDataProto_MMapEvent::clear_has_ino_generation() {
  _has_bits_[0] &= ~0x00000100u;
}
inline void PerfDataProto_MMapEvent::clear_ino_generation() {
  ino_generation_ = GOOGLE_ULONGLONG(0);
  clear_has_ino_generation();
}
inline ::google::protobuf::uint64 PerfDataProto_MMapEvent::ino_generation() const {
  return ino_generation_;
}
inline void PerfDataProto_MMapEvent::set_ino_generation(::google::protobuf::uint64 value) {
  set_has_ino_generation();
  ino_generation_ = value;
}

// optional uint32 prot = 13;
inline bool PerfDataProto_MMapEvent::has_prot() const {
  return (_has_bits_[0] & 0x00000200u) != 0;
}
inline void PerfDataProto_MMapEvent::set_has_prot() {
  _has_bits_[0] |= 0x00000200u;
}
inline void PerfDataProto_MMapEvent::clear_has_prot() {
  _has_bits_[0] &= ~0x00000200u;
}
inline void PerfDataProto_MMapEvent::clear_prot() {
  prot_ = 0u;
  clear_has_prot();
}
inline ::google::protobuf::uint32 PerfDataProto_MMapEvent::prot() const {
  return prot_;
}
inline void PerfDataProto_MMapEvent::set_prot(::google::protobuf::uint32 value) {
  set_has_prot();
  prot_ = value;
}

// optional uint32 flags = 14;
inline bool PerfDataProto_MMapEvent::has_flags() const {
  return (_has_bits_[0] & 0x00000400u) != 0;
}
inline void PerfDataProto_MMapEvent::set_has_flags() {
  _has_bits_[0] |= 0x00000400u;
}
inline void PerfDataProto_MMapEvent::clear_has_flags() {
  _has_bits_[0] &= ~0x00000400u;
}
inline void PerfDataProto_MMapEvent::clear_flags() {
  flags_ = 0u;
  clear_has_flags();
}
inline ::google::protobuf::uint32 PerfDataProto_MMapEvent::flags() const {
  return flags_;
}
inline void PerfDataProto_MMapEvent::set_flags(::google::protobuf::uint32 value) {
  set_has_flags();
  flags_ = value;
}

// optional string filename = 6;
inline bool PerfDataProto_MMapEvent::has_filename() const {
  return (_has_bits_[0] & 0x00000800u) != 0;
}
inline void PerfDataProto_MMapEvent::set_has_filename() {
  _has_bits_[0] |= 0x00000800u;
}
inline void PerfDataProto_MMapEvent::clear_has_filename() {
  _has_bits_[0] &= ~0x00000800u;
}
inline void PerfDataProto_MMapEvent::clear_filename() {
  if (filename_ != &::google::protobuf::internal::kEmptyString) {
    filename_->clear();
  }
  clear_has_filename();
}
inline const ::std::string& PerfDataProto_MMapEvent::filename() const {
  return *filename_;
}
inline void PerfDataProto_MMapEvent::set_filename(const ::std::string& value) {
  set_has_filename();
  if (filename_ == &::google::protobuf::internal::kEmptyString) {
    filename_ = new ::std::string;
  }
  filename_->assign(value);
}
inline void PerfDataProto_MMapEvent::set_filename(const char* value) {
  set_has_filename();
  if (filename_ == &::google::protobuf::internal::kEmptyString) {
    filename_ = new ::std::string;
  }
  filename_->assign(value);
}
inline void PerfDataProto_MMapEvent::set_filename(const char* value, size_t size) {
  set_has_filename();
  if (filename_ == &::google::protobuf::internal::kEmptyString) {
    filename_ = new ::std::string;
  }
  filename_->assign(reinterpret_cast<const char*>(value), size);
}
inline ::std::string* PerfDataProto_MMapEvent::mutable_filename() {
  set_has_filename();
  if (filename_ == &::google::protobuf::internal::kEmptyString) {
    filename_ = new ::std::string;
  }
  return filename_;
}
inline ::std::string* PerfDataProto_MMapEvent::release_filename() {
  clear_has_filename();
  if (filename_ == &::google::protobuf::internal::kEmptyString) {
    return NULL;
  } else {
    ::std::string* temp = filename_;
    filename_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
    return temp;
  }
}
inline void PerfDataProto_MMapEvent::set_allocated_filename(::std::string* filename) {
  if (filename_ != &::google::protobuf::internal::kEmptyString) {
    delete filename_;
  }
  if (filename) {
    set_has_filename();
    filename_ = filename;
  } else {
    clear_has_filename();
    filename_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
  }
}

// optional uint64 filename_md5_prefix = 7;
inline bool PerfDataProto_MMapEvent::has_filename_md5_prefix() const {
  return (_has_bits_[0] & 0x00001000u) != 0;
}
inline void PerfDataProto_MMapEvent::set_has_filename_md5_prefix() {
  _has_bits_[0] |= 0x00001000u;
}
inline void PerfDataProto_MMapEvent::clear_has_filename_md5_prefix() {
  _has_bits_[0] &= ~0x00001000u;
}
inline void PerfDataProto_MMapEvent::clear_filename_md5_prefix() {
  filename_md5_prefix_ = GOOGLE_ULONGLONG(0);
  clear_has_filename_md5_prefix();
}
inline ::google::protobuf::uint64 PerfDataProto_MMapEvent::filename_md5_prefix() const {
  return filename_md5_prefix_;
}
inline void PerfDataProto_MMapEvent::set_filename_md5_prefix(::google::protobuf::uint64 value) {
  set_has_filename_md5_prefix();
  filename_md5_prefix_ = value;
}

// optional .quipper.PerfDataProto.SampleInfo sample_info = 8;
inline bool PerfDataProto_MMapEvent::has_sample_info() const {
  return (_has_bits_[0] & 0x00002000u) != 0;
}
inline void PerfDataProto_MMapEvent::set_has_sample_info() {
  _has_bits_[0] |= 0x00002000u;
}
inline void PerfDataProto_MMapEvent::clear_has_sample_info() {
  _has_bits_[0] &= ~0x00002000u;
}
inline void PerfDataProto_MMapEvent::clear_sample_info() {
  if (sample_info_ != NULL) sample_info_->::quipper::PerfDataProto_SampleInfo::Clear();
  clear_has_sample_info();
}
inline const ::quipper::PerfDataProto_SampleInfo& PerfDataProto_MMapEvent::sample_info() const {
  return sample_info_ != NULL ? *sample_info_ : *default_instance_->sample_info_;
}
inline ::quipper::PerfDataProto_SampleInfo* PerfDataProto_MMapEvent::mutable_sample_info() {
  set_has_sample_info();
  if (sample_info_ == NULL) sample_info_ = new ::quipper::PerfDataProto_SampleInfo;
  return sample_info_;
}
inline ::quipper::PerfDataProto_SampleInfo* PerfDataProto_MMapEvent::release_sample_info() {
  clear_has_sample_info();
  ::quipper::PerfDataProto_SampleInfo* temp = sample_info_;
  sample_info_ = NULL;
  return temp;
}
inline void PerfDataProto_MMapEvent::set_allocated_sample_info(::quipper::PerfDataProto_SampleInfo* sample_info) {
  delete sample_info_;
  sample_info_ = sample_info;
  if (sample_info) {
    set_has_sample_info();
  } else {
    clear_has_sample_info();
  }
}

// -------------------------------------------------------------------

// PerfDataProto_BranchStackEntry

// optional uint64 from_ip = 1;
inline bool PerfDataProto_BranchStackEntry::has_from_ip() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void PerfDataProto_BranchStackEntry::set_has_from_ip() {
  _has_bits_[0] |= 0x00000001u;
}
inline void PerfDataProto_BranchStackEntry::clear_has_from_ip() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void PerfDataProto_BranchStackEntry::clear_from_ip() {
  from_ip_ = GOOGLE_ULONGLONG(0);
  clear_has_from_ip();
}
inline ::google::protobuf::uint64 PerfDataProto_BranchStackEntry::from_ip() const {
  return from_ip_;
}
inline void PerfDataProto_BranchStackEntry::set_from_ip(::google::protobuf::uint64 value) {
  set_has_from_ip();
  from_ip_ = value;
}

// optional uint64 to_ip = 2;
inline bool PerfDataProto_BranchStackEntry::has_to_ip() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void PerfDataProto_BranchStackEntry::set_has_to_ip() {
  _has_bits_[0] |= 0x00000002u;
}
inline void PerfDataProto_BranchStackEntry::clear_has_to_ip() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void PerfDataProto_BranchStackEntry::clear_to_ip() {
  to_ip_ = GOOGLE_ULONGLONG(0);
  clear_has_to_ip();
}
inline ::google::protobuf::uint64 PerfDataProto_BranchStackEntry::to_ip() const {
  return to_ip_;
}
inline void PerfDataProto_BranchStackEntry::set_to_ip(::google::protobuf::uint64 value) {
  set_has_to_ip();
  to_ip_ = value;
}

// optional bool mispredicted = 3;
inline bool PerfDataProto_BranchStackEntry::has_mispredicted() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void PerfDataProto_BranchStackEntry::set_has_mispredicted() {
  _has_bits_[0] |= 0x00000004u;
}
inline void PerfDataProto_BranchStackEntry::clear_has_mispredicted() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void PerfDataProto_BranchStackEntry::clear_mispredicted() {
  mispredicted_ = false;
  clear_has_mispredicted();
}
inline bool PerfDataProto_BranchStackEntry::mispredicted() const {
  return mispredicted_;
}
inline void PerfDataProto_BranchStackEntry::set_mispredicted(bool value) {
  set_has_mispredicted();
  mispredicted_ = value;
}

// -------------------------------------------------------------------

// PerfDataProto_SampleEvent

// optional uint64 ip = 1;
inline bool PerfDataProto_SampleEvent::has_ip() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void PerfDataProto_SampleEvent::set_has_ip() {
  _has_bits_[0] |= 0x00000001u;
}
inline void PerfDataProto_SampleEvent::clear_has_ip() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void PerfDataProto_SampleEvent::clear_ip() {
  ip_ = GOOGLE_ULONGLONG(0);
  clear_has_ip();
}
inline ::google::protobuf::uint64 PerfDataProto_SampleEvent::ip() const {
  return ip_;
}
inline void PerfDataProto_SampleEvent::set_ip(::google::protobuf::uint64 value) {
  set_has_ip();
  ip_ = value;
}

// optional uint32 pid = 2;
inline bool PerfDataProto_SampleEvent::has_pid() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void PerfDataProto_SampleEvent::set_has_pid() {
  _has_bits_[0] |= 0x00000002u;
}
inline void PerfDataProto_SampleEvent::clear_has_pid() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void PerfDataProto_SampleEvent::clear_pid() {
  pid_ = 0u;
  clear_has_pid();
}
inline ::google::protobuf::uint32 PerfDataProto_SampleEvent::pid() const {
  return pid_;
}
inline void PerfDataProto_SampleEvent::set_pid(::google::protobuf::uint32 value) {
  set_has_pid();
  pid_ = value;
}

// optional uint32 tid = 3;
inline bool PerfDataProto_SampleEvent::has_tid() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void PerfDataProto_SampleEvent::set_has_tid() {
  _has_bits_[0] |= 0x00000004u;
}
inline void PerfDataProto_SampleEvent::clear_has_tid() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void PerfDataProto_SampleEvent::clear_tid() {
  tid_ = 0u;
  clear_has_tid();
}
inline ::google::protobuf::uint32 PerfDataProto_SampleEvent::tid() const {
  return tid_;
}
inline void PerfDataProto_SampleEvent::set_tid(::google::protobuf::uint32 value) {
  set_has_tid();
  tid_ = value;
}

// optional uint64 sample_time_ns = 4;
inline bool PerfDataProto_SampleEvent::has_sample_time_ns() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void PerfDataProto_SampleEvent::set_has_sample_time_ns() {
  _has_bits_[0] |= 0x00000008u;
}
inline void PerfDataProto_SampleEvent::clear_has_sample_time_ns() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void PerfDataProto_SampleEvent::clear_sample_time_ns() {
  sample_time_ns_ = GOOGLE_ULONGLONG(0);
  clear_has_sample_time_ns();
}
inline ::google::protobuf::uint64 PerfDataProto_SampleEvent::sample_time_ns() const {
  return sample_time_ns_;
}
inline void PerfDataProto_SampleEvent::set_sample_time_ns(::google::protobuf::uint64 value) {
  set_has_sample_time_ns();
  sample_time_ns_ = value;
}

// optional uint64 addr = 5;
inline bool PerfDataProto_SampleEvent::has_addr() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void PerfDataProto_SampleEvent::set_has_addr() {
  _has_bits_[0] |= 0x00000010u;
}
inline void PerfDataProto_SampleEvent::clear_has_addr() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void PerfDataProto_SampleEvent::clear_addr() {
  addr_ = GOOGLE_ULONGLONG(0);
  clear_has_addr();
}
inline ::google::protobuf::uint64 PerfDataProto_SampleEvent::addr() const {
  return addr_;
}
inline void PerfDataProto_SampleEvent::set_addr(::google::protobuf::uint64 value) {
  set_has_addr();
  addr_ = value;
}

// optional uint64 id = 6;
inline bool PerfDataProto_SampleEvent::has_id() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void PerfDataProto_SampleEvent::set_has_id() {
  _has_bits_[0] |= 0x00000020u;
}
inline void PerfDataProto_SampleEvent::clear_has_id() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void PerfDataProto_SampleEvent::clear_id() {
  id_ = GOOGLE_ULONGLONG(0);
  clear_has_id();
}
inline ::google::protobuf::uint64 PerfDataProto_SampleEvent::id() const {
  return id_;
}
inline void PerfDataProto_SampleEvent::set_id(::google::protobuf::uint64 value) {
  set_has_id();
  id_ = value;
}

// optional uint64 stream_id = 7;
inline bool PerfDataProto_SampleEvent::has_stream_id() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void PerfDataProto_SampleEvent::set_has_stream_id() {
  _has_bits_[0] |= 0x00000040u;
}
inline void PerfDataProto_SampleEvent::clear_has_stream_id() {
  _has_bits_[0] &= ~0x00000040u;
}
inline void PerfDataProto_SampleEvent::clear_stream_id() {
  stream_id_ = GOOGLE_ULONGLONG(0);
  clear_has_stream_id();
}
inline ::google::protobuf::uint64 PerfDataProto_SampleEvent::stream_id() const {
  return stream_id_;
}
inline void PerfDataProto_SampleEvent::set_stream_id(::google::protobuf::uint64 value) {
  set_has_stream_id();
  stream_id_ = value;
}

// optional uint64 period = 8;
inline bool PerfDataProto_SampleEvent::has_period() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void PerfDataProto_SampleEvent::set_has_period() {
  _has_bits_[0] |= 0x00000080u;
}
inline void PerfDataProto_SampleEvent::clear_has_period() {
  _has_bits_[0] &= ~0x00000080u;
}
inline void PerfDataProto_SampleEvent::clear_period() {
  period_ = GOOGLE_ULONGLONG(0);
  clear_has_period();
}
inline ::google::protobuf::uint64 PerfDataProto_SampleEvent::period() const {
  return period_;
}
inline void PerfDataProto_SampleEvent::set_period(::google::protobuf::uint64 value) {
  set_has_period();
  period_ = value;
}

// optional uint32 cpu = 9;
inline bool PerfDataProto_SampleEvent::has_cpu() const {
  return (_has_bits_[0] & 0x00000100u) != 0;
}
inline void PerfDataProto_SampleEvent::set_has_cpu() {
  _has_bits_[0] |= 0x00000100u;
}
inline void PerfDataProto_SampleEvent::clear_has_cpu() {
  _has_bits_[0] &= ~0x00000100u;
}
inline void PerfDataProto_SampleEvent::clear_cpu() {
  cpu_ = 0u;
  clear_has_cpu();
}
inline ::google::protobuf::uint32 PerfDataProto_SampleEvent::cpu() const {
  return cpu_;
}
inline void PerfDataProto_SampleEvent::set_cpu(::google::protobuf::uint32 value) {
  set_has_cpu();
  cpu_ = value;
}

// optional uint32 raw_size = 10;
inline bool PerfDataProto_SampleEvent::has_raw_size() const {
  return (_has_bits_[0] & 0x00000200u) != 0;
}
inline void PerfDataProto_SampleEvent::set_has_raw_size() {
  _has_bits_[0] |= 0x00000200u;
}
inline void PerfDataProto_SampleEvent::clear_has_raw_size() {
  _has_bits_[0] &= ~0x00000200u;
}
inline void PerfDataProto_SampleEvent::clear_raw_size() {
  raw_size_ = 0u;
  clear_has_raw_size();
}
inline ::google::protobuf::uint32 PerfDataProto_SampleEvent::raw_size() const {
  return raw_size_;
}
inline void PerfDataProto_SampleEvent::set_raw_size(::google::protobuf::uint32 value) {
  set_has_raw_size();
  raw_size_ = value;
}

// repeated uint64 callchain = 11;
inline int PerfDataProto_SampleEvent::callchain_size() const {
  return callchain_.size();
}
inline void PerfDataProto_SampleEvent::clear_callchain() {
  callchain_.Clear();
}
inline ::google::protobuf::uint64 PerfDataProto_SampleEvent::callchain(int index) const {
  return callchain_.Get(index);
}
inline void PerfDataProto_SampleEvent::set_callchain(int index, ::google::protobuf::uint64 value) {
  callchain_.Set(index, value);
}
inline void PerfDataProto_SampleEvent::add_callchain(::google::protobuf::uint64 value) {
  callchain_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
PerfDataProto_SampleEvent::callchain() const {
  return callchain_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
PerfDataProto_SampleEvent::mutable_callchain() {
  return &callchain_;
}

// repeated .quipper.PerfDataProto.BranchStackEntry branch_stack = 12;
inline int PerfDataProto_SampleEvent::branch_stack_size() const {
  return branch_stack_.size();
}
inline void PerfDataProto_SampleEvent::clear_branch_stack() {
  branch_stack_.Clear();
}
inline const ::quipper::PerfDataProto_BranchStackEntry& PerfDataProto_SampleEvent::branch_stack(int index) const {
  return branch_stack_.Get(index);
}
inline ::quipper::PerfDataProto_BranchStackEntry* PerfDataProto_SampleEvent::mutable_branch_stack(int index) {
  return branch_stack_.Mutable(index);
}
inline ::quipper::PerfDataProto_BranchStackEntry* PerfDataProto_SampleEvent::add_branch_stack() {
  return branch_stack_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::quipper::PerfDataProto_BranchStackEntry >&
PerfDataProto_SampleEvent::branch_stack() const {
  return branch_stack_;
}
inline ::google::protobuf::RepeatedPtrField< ::quipper::PerfDataProto_BranchStackEntry >*
PerfDataProto_SampleEvent::mutable_branch_stack() {
  return &branch_stack_;
}

// -------------------------------------------------------------------

// PerfDataProto_ForkEvent

// optional uint32 pid = 1;
inline bool PerfDataProto_ForkEvent::has_pid() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void PerfDataProto_ForkEvent::set_has_pid() {
  _has_bits_[0] |= 0x00000001u;
}
inline void PerfDataProto_ForkEvent::clear_has_pid() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void PerfDataProto_ForkEvent::clear_pid() {
  pid_ = 0u;
  clear_has_pid();
}
inline ::google::protobuf::uint32 PerfDataProto_ForkEvent::pid() const {
  return pid_;
}
inline void PerfDataProto_ForkEvent::set_pid(::google::protobuf::uint32 value) {
  set_has_pid();
  pid_ = value;
}

// optional uint32 ppid = 2;
inline bool PerfDataProto_ForkEvent::has_ppid() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void PerfDataProto_ForkEvent::set_has_ppid() {
  _has_bits_[0] |= 0x00000002u;
}
inline void PerfDataProto_ForkEvent::clear_has_ppid() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void PerfDataProto_ForkEvent::clear_ppid() {
  ppid_ = 0u;
  clear_has_ppid();
}
inline ::google::protobuf::uint32 PerfDataProto_ForkEvent::ppid() const {
  return ppid_;
}
inline void PerfDataProto_ForkEvent::set_ppid(::google::protobuf::uint32 value) {
  set_has_ppid();
  ppid_ = value;
}

// optional uint32 tid = 3;
inline bool PerfDataProto_ForkEvent::has_tid() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void PerfDataProto_ForkEvent::set_has_tid() {
  _has_bits_[0] |= 0x00000004u;
}
inline void PerfDataProto_ForkEvent::clear_has_tid() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void PerfDataProto_ForkEvent::clear_tid() {
  tid_ = 0u;
  clear_has_tid();
}
inline ::google::protobuf::uint32 PerfDataProto_ForkEvent::tid() const {
  return tid_;
}
inline void PerfDataProto_ForkEvent::set_tid(::google::protobuf::uint32 value) {
  set_has_tid();
  tid_ = value;
}

// optional uint32 ptid = 4;
inline bool PerfDataProto_ForkEvent::has_ptid() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void PerfDataProto_ForkEvent::set_has_ptid() {
  _has_bits_[0] |= 0x00000008u;
}
inline void PerfDataProto_ForkEvent::clear_has_ptid() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void PerfDataProto_ForkEvent::clear_ptid() {
  ptid_ = 0u;
  clear_has_ptid();
}
inline ::google::protobuf::uint32 PerfDataProto_ForkEvent::ptid() const {
  return ptid_;
}
inline void PerfDataProto_ForkEvent::set_ptid(::google::protobuf::uint32 value) {
  set_has_ptid();
  ptid_ = value;
}

// optional uint64 fork_time_ns = 5;
inline bool PerfDataProto_ForkEvent::has_fork_time_ns() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void PerfDataProto_ForkEvent::set_has_fork_time_ns() {
  _has_bits_[0] |= 0x00000010u;
}
inline void PerfDataProto_ForkEvent::clear_has_fork_time_ns() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void PerfDataProto_ForkEvent::clear_fork_time_ns() {
  fork_time_ns_ = GOOGLE_ULONGLONG(0);
  clear_has_fork_time_ns();
}
inline ::google::protobuf::uint64 PerfDataProto_ForkEvent::fork_time_ns() const {
  return fork_time_ns_;
}
inline void PerfDataProto_ForkEvent::set_fork_time_ns(::google::protobuf::uint64 value) {
  set_has_fork_time_ns();
  fork_time_ns_ = value;
}

// optional .quipper.PerfDataProto.SampleInfo sample_info = 11;
inline bool PerfDataProto_ForkEvent::has_sample_info() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void PerfDataProto_ForkEvent::set_has_sample_info() {
  _has_bits_[0] |= 0x00000020u;
}
inline void PerfDataProto_ForkEvent::clear_has_sample_info() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void PerfDataProto_ForkEvent::clear_sample_info() {
  if (sample_info_ != NULL) sample_info_->::quipper::PerfDataProto_SampleInfo::Clear();
  clear_has_sample_info();
}
inline const ::quipper::PerfDataProto_SampleInfo& PerfDataProto_ForkEvent::sample_info() const {
  return sample_info_ != NULL ? *sample_info_ : *default_instance_->sample_info_;
}
inline ::quipper::PerfDataProto_SampleInfo* PerfDataProto_ForkEvent::mutable_sample_info() {
  set_has_sample_info();
  if (sample_info_ == NULL) sample_info_ = new ::quipper::PerfDataProto_SampleInfo;
  return sample_info_;
}
inline ::quipper::PerfDataProto_SampleInfo* PerfDataProto_ForkEvent::release_sample_info() {
  clear_has_sample_info();
  ::quipper::PerfDataProto_SampleInfo* temp = sample_info_;
  sample_info_ = NULL;
  return temp;
}
inline void PerfDataProto_ForkEvent::set_allocated_sample_info(::quipper::PerfDataProto_SampleInfo* sample_info) {
  delete sample_info_;
  sample_info_ = sample_info;
  if (sample_info) {
    set_has_sample_info();
  } else {
    clear_has_sample_info();
  }
}

// -------------------------------------------------------------------

// PerfDataProto_LostEvent

// optional uint64 id = 1;
inline bool PerfDataProto_LostEvent::has_id() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void PerfDataProto_LostEvent::set_has_id() {
  _has_bits_[0] |= 0x00000001u;
}
inline void PerfDataProto_LostEvent::clear_has_id() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void PerfDataProto_LostEvent::clear_id() {
  id_ = GOOGLE_ULONGLONG(0);
  clear_has_id();
}
inline ::google::protobuf::uint64 PerfDataProto_LostEvent::id() const {
  return id_;
}
inline void PerfDataProto_LostEvent::set_id(::google::protobuf::uint64 value) {
  set_has_id();
  id_ = value;
}

// optional uint64 lost = 2;
inline bool PerfDataProto_LostEvent::has_lost() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void PerfDataProto_LostEvent::set_has_lost() {
  _has_bits_[0] |= 0x00000002u;
}
inline void PerfDataProto_LostEvent::clear_has_lost() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void PerfDataProto_LostEvent::clear_lost() {
  lost_ = GOOGLE_ULONGLONG(0);
  clear_has_lost();
}
inline ::google::protobuf::uint64 PerfDataProto_LostEvent::lost() const {
  return lost_;
}
inline void PerfDataProto_LostEvent::set_lost(::google::protobuf::uint64 value) {
  set_has_lost();
  lost_ = value;
}

// optional .quipper.PerfDataProto.SampleInfo sample_info = 3;
inline bool PerfDataProto_LostEvent::has_sample_info() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void PerfDataProto_LostEvent::set_has_sample_info() {
  _has_bits_[0] |= 0x00000004u;
}
inline void PerfDataProto_LostEvent::clear_has_sample_info() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void PerfDataProto_LostEvent::clear_sample_info() {
  if (sample_info_ != NULL) sample_info_->::quipper::PerfDataProto_SampleInfo::Clear();
  clear_has_sample_info();
}
inline const ::quipper::PerfDataProto_SampleInfo& PerfDataProto_LostEvent::sample_info() const {
  return sample_info_ != NULL ? *sample_info_ : *default_instance_->sample_info_;
}
inline ::quipper::PerfDataProto_SampleInfo* PerfDataProto_LostEvent::mutable_sample_info() {
  set_has_sample_info();
  if (sample_info_ == NULL) sample_info_ = new ::quipper::PerfDataProto_SampleInfo;
  return sample_info_;
}
inline ::quipper::PerfDataProto_SampleInfo* PerfDataProto_LostEvent::release_sample_info() {
  clear_has_sample_info();
  ::quipper::PerfDataProto_SampleInfo* temp = sample_info_;
  sample_info_ = NULL;
  return temp;
}
inline void PerfDataProto_LostEvent::set_allocated_sample_info(::quipper::PerfDataProto_SampleInfo* sample_info) {
  delete sample_info_;
  sample_info_ = sample_info;
  if (sample_info) {
    set_has_sample_info();
  } else {
    clear_has_sample_info();
  }
}

// -------------------------------------------------------------------

// PerfDataProto_ThrottleEvent

// optional uint64 time_ns = 1;
inline bool PerfDataProto_ThrottleEvent::has_time_ns() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void PerfDataProto_ThrottleEvent::set_has_time_ns() {
  _has_bits_[0] |= 0x00000001u;
}
inline void PerfDataProto_ThrottleEvent::clear_has_time_ns() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void PerfDataProto_ThrottleEvent::clear_time_ns() {
  time_ns_ = GOOGLE_ULONGLONG(0);
  clear_has_time_ns();
}
inline ::google::protobuf::uint64 PerfDataProto_ThrottleEvent::time_ns() const {
  return time_ns_;
}
inline void PerfDataProto_ThrottleEvent::set_time_ns(::google::protobuf::uint64 value) {
  set_has_time_ns();
  time_ns_ = value;
}

// optional uint64 id = 2;
inline bool PerfDataProto_ThrottleEvent::has_id() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void PerfDataProto_ThrottleEvent::set_has_id() {
  _has_bits_[0] |= 0x00000002u;
}
inline void PerfDataProto_ThrottleEvent::clear_has_id() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void PerfDataProto_ThrottleEvent::clear_id() {
  id_ = GOOGLE_ULONGLONG(0);
  clear_has_id();
}
inline ::google::protobuf::uint64 PerfDataProto_ThrottleEvent::id() const {
  return id_;
}
inline void PerfDataProto_ThrottleEvent::set_id(::google::protobuf::uint64 value) {
  set_has_id();
  id_ = value;
}

// optional uint64 stream_id = 3;
inline bool PerfDataProto_ThrottleEvent::has_stream_id() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void PerfDataProto_ThrottleEvent::set_has_stream_id() {
  _has_bits_[0] |= 0x00000004u;
}
inline void PerfDataProto_ThrottleEvent::clear_has_stream_id() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void PerfDataProto_ThrottleEvent::clear_stream_id() {
  stream_id_ = GOOGLE_ULONGLONG(0);
  clear_has_stream_id();
}
inline ::google::protobuf::uint64 PerfDataProto_ThrottleEvent::stream_id() const {
  return stream_id_;
}
inline void PerfDataProto_ThrottleEvent::set_stream_id(::google::protobuf::uint64 value) {
  set_has_stream_id();
  stream_id_ = value;
}

// optional .quipper.PerfDataProto.SampleInfo sample_info = 4;
inline bool PerfDataProto_ThrottleEvent::has_sample_info() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void PerfDataProto_ThrottleEvent::set_has_sample_info() {
  _has_bits_[0] |= 0x00000008u;
}
inline void PerfDataProto_ThrottleEvent::clear_has_sample_info() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void PerfDataProto_ThrottleEvent::clear_sample_info() {
  if (sample_info_ != NULL) sample_info_->::quipper::PerfDataProto_SampleInfo::Clear();
  clear_has_sample_info();
}
inline const ::quipper::PerfDataProto_SampleInfo& PerfDataProto_ThrottleEvent::sample_info() const {
  return sample_info_ != NULL ? *sample_info_ : *default_instance_->sample_info_;
}
inline ::quipper::PerfDataProto_SampleInfo* PerfDataProto_ThrottleEvent::mutable_sample_info() {
  set_has_sample_info();
  if (sample_info_ == NULL) sample_info_ = new ::quipper::PerfDataProto_SampleInfo;
  return sample_info_;
}
inline ::quipper::PerfDataProto_SampleInfo* PerfDataProto_ThrottleEvent::release_sample_info() {
  clear_has_sample_info();
  ::quipper::PerfDataProto_SampleInfo* temp = sample_info_;
  sample_info_ = NULL;
  return temp;
}
inline void PerfDataProto_ThrottleEvent::set_allocated_sample_info(::quipper::PerfDataProto_SampleInfo* sample_info) {
  delete sample_info_;
  sample_info_ = sample_info;
  if (sample_info) {
    set_has_sample_info();
  } else {
    clear_has_sample_info();
  }
}

// -------------------------------------------------------------------

// PerfDataProto_ReadEvent

// optional uint32 pid = 1;
inline bool PerfDataProto_ReadEvent::has_pid() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void PerfDataProto_ReadEvent::set_has_pid() {
  _has_bits_[0] |= 0x00000001u;
}
inline void PerfDataProto_ReadEvent::clear_has_pid() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void PerfDataProto_ReadEvent::clear_pid() {
  pid_ = 0u;
  clear_has_pid();
}
inline ::google::protobuf::uint32 PerfDataProto_ReadEvent::pid() const {
  return pid_;
}
inline void PerfDataProto_ReadEvent::set_pid(::google::protobuf::uint32 value) {
  set_has_pid();
  pid_ = value;
}

// optional uint32 tid = 2;
inline bool PerfDataProto_ReadEvent::has_tid() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void PerfDataProto_ReadEvent::set_has_tid() {
  _has_bits_[0] |= 0x00000002u;
}
inline void PerfDataProto_ReadEvent::clear_has_tid() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void PerfDataProto_ReadEvent::clear_tid() {
  tid_ = 0u;
  clear_has_tid();
}
inline ::google::protobuf::uint32 PerfDataProto_ReadEvent::tid() const {
  return tid_;
}
inline void PerfDataProto_ReadEvent::set_tid(::google::protobuf::uint32 value) {
  set_has_tid();
  tid_ = value;
}

// optional uint64 value = 3;
inline bool PerfDataProto_ReadEvent::has_value() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void PerfDataProto_ReadEvent::set_has_value() {
  _has_bits_[0] |= 0x00000004u;
}
inline void PerfDataProto_ReadEvent::clear_has_value() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void PerfDataProto_ReadEvent::clear_value() {
  value_ = GOOGLE_ULONGLONG(0);
  clear_has_value();
}
inline ::google::protobuf::uint64 PerfDataProto_ReadEvent::value() const {
  return value_;
}
inline void PerfDataProto_ReadEvent::set_value(::google::protobuf::uint64 value) {
  set_has_value();
  value_ = value;
}

// optional uint64 time_enabled = 4;
inline bool PerfDataProto_ReadEvent::has_time_enabled() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void PerfDataProto_ReadEvent::set_has_time_enabled() {
  _has_bits_[0] |= 0x00000008u;
}
inline void PerfDataProto_ReadEvent::clear_has_time_enabled() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void PerfDataProto_ReadEvent::clear_time_enabled() {
  time_enabled_ = GOOGLE_ULONGLONG(0);
  clear_has_time_enabled();
}
inline ::google::protobuf::uint64 PerfDataProto_ReadEvent::time_enabled() const {
  return time_enabled_;
}
inline void PerfDataProto_ReadEvent::set_time_enabled(::google::protobuf::uint64 value) {
  set_has_time_enabled();
  time_enabled_ = value;
}

// optional uint64 time_running = 5;
inline bool PerfDataProto_ReadEvent::has_time_running() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void PerfDataProto_ReadEvent::set_has_time_running() {
  _has_bits_[0] |= 0x00000010u;
}
inline void PerfDataProto_ReadEvent::clear_has_time_running() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void PerfDataProto_ReadEvent::clear_time_running() {
  time_running_ = GOOGLE_ULONGLONG(0);
  clear_has_time_running();
}
inline ::google::protobuf::uint64 PerfDataProto_ReadEvent::time_running() const {
  return time_running_;
}
inline void PerfDataProto_ReadEvent::set_time_running(::google::protobuf::uint64 value) {
  set_has_time_running();
  time_running_ = value;
}

// optional uint64 id = 6;
inline bool PerfDataProto_ReadEvent::has_id() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void PerfDataProto_ReadEvent::set_has_id() {
  _has_bits_[0] |= 0x00000020u;
}
inline void PerfDataProto_ReadEvent::clear_has_id() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void PerfDataProto_ReadEvent::clear_id() {
  id_ = GOOGLE_ULONGLONG(0);
  clear_has_id();
}
inline ::google::protobuf::uint64 PerfDataProto_ReadEvent::id() const {
  return id_;
}
inline void PerfDataProto_ReadEvent::set_id(::google::protobuf::uint64 value) {
  set_has_id();
  id_ = value;
}

// optional .quipper.PerfDataProto.SampleInfo sample_info = 7;
inline bool PerfDataProto_ReadEvent::has_sample_info() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void PerfDataProto_ReadEvent::set_has_sample_info() {
  _has_bits_[0] |= 0x00000040u;
}
inline void PerfDataProto_ReadEvent::clear_has_sample_info() {
  _has_bits_[0] &= ~0x00000040u;
}
inline void PerfDataProto_ReadEvent::clear_sample_info() {
  if (sample_info_ != NULL) sample_info_->::quipper::PerfDataProto_SampleInfo::Clear();
  clear_has_sample_info();
}
inline const ::quipper::PerfDataProto_SampleInfo& PerfDataProto_ReadEvent::sample_info() const {
  return sample_info_ != NULL ? *sample_info_ : *default_instance_->sample_info_;
}
inline ::quipper::PerfDataProto_SampleInfo* PerfDataProto_ReadEvent::mutable_sample_info() {
  set_has_sample_info();
  if (sample_info_ == NULL) sample_info_ = new ::quipper::PerfDataProto_SampleInfo;
  return sample_info_;
}
inline ::quipper::PerfDataProto_SampleInfo* PerfDataProto_ReadEvent::release_sample_info() {
  clear_has_sample_info();
  ::quipper::PerfDataProto_SampleInfo* temp = sample_info_;
  sample_info_ = NULL;
  return temp;
}
inline void PerfDataProto_ReadEvent::set_allocated_sample_info(::quipper::PerfDataProto_SampleInfo* sample_info) {
  delete sample_info_;
  sample_info_ = sample_info;
  if (sample_info) {
    set_has_sample_info();
  } else {
    clear_has_sample_info();
  }
}

// -------------------------------------------------------------------

// PerfDataProto_EventHeader

// optional uint32 type = 1;
inline bool PerfDataProto_EventHeader::has_type() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void PerfDataProto_EventHeader::set_has_type() {
  _has_bits_[0] |= 0x00000001u;
}
inline void PerfDataProto_EventHeader::clear_has_type() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void PerfDataProto_EventHeader::clear_type() {
  type_ = 0u;
  clear_has_type();
}
inline ::google::protobuf::uint32 PerfDataProto_EventHeader::type() const {
  return type_;
}
inline void PerfDataProto_EventHeader::set_type(::google::protobuf::uint32 value) {
  set_has_type();
  type_ = value;
}

// optional uint32 misc = 2;
inline bool PerfDataProto_EventHeader::has_misc() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void PerfDataProto_EventHeader::set_has_misc() {
  _has_bits_[0] |= 0x00000002u;
}
inline void PerfDataProto_EventHeader::clear_has_misc() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void PerfDataProto_EventHeader::clear_misc() {
  misc_ = 0u;
  clear_has_misc();
}
inline ::google::protobuf::uint32 PerfDataProto_EventHeader::misc() const {
  return misc_;
}
inline void PerfDataProto_EventHeader::set_misc(::google::protobuf::uint32 value) {
  set_has_misc();
  misc_ = value;
}

// optional uint32 size = 3;
inline bool PerfDataProto_EventHeader::has_size() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void PerfDataProto_EventHeader::set_has_size() {
  _has_bits_[0] |= 0x00000004u;
}
inline void PerfDataProto_EventHeader::clear_has_size() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void PerfDataProto_EventHeader::clear_size() {
  size_ = 0u;
  clear_has_size();
}
inline ::google::protobuf::uint32 PerfDataProto_EventHeader::size() const {
  return size_;
}
inline void PerfDataProto_EventHeader::set_size(::google::protobuf::uint32 value) {
  set_has_size();
  size_ = value;
}

// -------------------------------------------------------------------

// PerfDataProto_PerfEvent

// optional .quipper.PerfDataProto.EventHeader header = 1;
inline bool PerfDataProto_PerfEvent::has_header() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void PerfDataProto_PerfEvent::set_has_header() {
  _has_bits_[0] |= 0x00000001u;
}
inline void PerfDataProto_PerfEvent::clear_has_header() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void PerfDataProto_PerfEvent::clear_header() {
  if (header_ != NULL) header_->::quipper::PerfDataProto_EventHeader::Clear();
  clear_has_header();
}
inline const ::quipper::PerfDataProto_EventHeader& PerfDataProto_PerfEvent::header() const {
  return header_ != NULL ? *header_ : *default_instance_->header_;
}
inline ::quipper::PerfDataProto_EventHeader* PerfDataProto_PerfEvent::mutable_header() {
  set_has_header();
  if (header_ == NULL) header_ = new ::quipper::PerfDataProto_EventHeader;
  return header_;
}
inline ::quipper::PerfDataProto_EventHeader* PerfDataProto_PerfEvent::release_header() {
  clear_has_header();
  ::quipper::PerfDataProto_EventHeader* temp = header_;
  header_ = NULL;
  return temp;
}
inline void PerfDataProto_PerfEvent::set_allocated_header(::quipper::PerfDataProto_EventHeader* header) {
  delete header_;
  header_ = header;
  if (header) {
    set_has_header();
  } else {
    clear_has_header();
  }
}

// optional .quipper.PerfDataProto.MMapEvent mmap_event = 2;
inline bool PerfDataProto_PerfEvent::has_mmap_event() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void PerfDataProto_PerfEvent::set_has_mmap_event() {
  _has_bits_[0] |= 0x00000002u;
}
inline void PerfDataProto_PerfEvent::clear_has_mmap_event() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void PerfDataProto_PerfEvent::clear_mmap_event() {
  if (mmap_event_ != NULL) mmap_event_->::quipper::PerfDataProto_MMapEvent::Clear();
  clear_has_mmap_event();
}
inline const ::quipper::PerfDataProto_MMapEvent& PerfDataProto_PerfEvent::mmap_event() const {
  return mmap_event_ != NULL ? *mmap_event_ : *default_instance_->mmap_event_;
}
inline ::quipper::PerfDataProto_MMapEvent* PerfDataProto_PerfEvent::mutable_mmap_event() {
  set_has_mmap_event();
  if (mmap_event_ == NULL) mmap_event_ = new ::quipper::PerfDataProto_MMapEvent;
  return mmap_event_;
}
inline ::quipper::PerfDataProto_MMapEvent* PerfDataProto_PerfEvent::release_mmap_event() {
  clear_has_mmap_event();
  ::quipper::PerfDataProto_MMapEvent* temp = mmap_event_;
  mmap_event_ = NULL;
  return temp;
}
inline void PerfDataProto_PerfEvent::set_allocated_mmap_event(::quipper::PerfDataProto_MMapEvent* mmap_event) {
  delete mmap_event_;
  mmap_event_ = mmap_event;
  if (mmap_event) {
    set_has_mmap_event();
  } else {
    clear_has_mmap_event();
  }
}

// optional .quipper.PerfDataProto.SampleEvent sample_event = 3;
inline bool PerfDataProto_PerfEvent::has_sample_event() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void PerfDataProto_PerfEvent::set_has_sample_event() {
  _has_bits_[0] |= 0x00000004u;
}
inline void PerfDataProto_PerfEvent::clear_has_sample_event() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void PerfDataProto_PerfEvent::clear_sample_event() {
  if (sample_event_ != NULL) sample_event_->::quipper::PerfDataProto_SampleEvent::Clear();
  clear_has_sample_event();
}
inline const ::quipper::PerfDataProto_SampleEvent& PerfDataProto_PerfEvent::sample_event() const {
  return sample_event_ != NULL ? *sample_event_ : *default_instance_->sample_event_;
}
inline ::quipper::PerfDataProto_SampleEvent* PerfDataProto_PerfEvent::mutable_sample_event() {
  set_has_sample_event();
  if (sample_event_ == NULL) sample_event_ = new ::quipper::PerfDataProto_SampleEvent;
  return sample_event_;
}
inline ::quipper::PerfDataProto_SampleEvent* PerfDataProto_PerfEvent::release_sample_event() {
  clear_has_sample_event();
  ::quipper::PerfDataProto_SampleEvent* temp = sample_event_;
  sample_event_ = NULL;
  return temp;
}
inline void PerfDataProto_PerfEvent::set_allocated_sample_event(::quipper::PerfDataProto_SampleEvent* sample_event) {
  delete sample_event_;
  sample_event_ = sample_event;
  if (sample_event) {
    set_has_sample_event();
  } else {
    clear_has_sample_event();
  }
}

// optional .quipper.PerfDataProto.CommEvent comm_event = 4;
inline bool PerfDataProto_PerfEvent::has_comm_event() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void PerfDataProto_PerfEvent::set_has_comm_event() {
  _has_bits_[0] |= 0x00000008u;
}
inline void PerfDataProto_PerfEvent::clear_has_comm_event() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void PerfDataProto_PerfEvent::clear_comm_event() {
  if (comm_event_ != NULL) comm_event_->::quipper::PerfDataProto_CommEvent::Clear();
  clear_has_comm_event();
}
inline const ::quipper::PerfDataProto_CommEvent& PerfDataProto_PerfEvent::comm_event() const {
  return comm_event_ != NULL ? *comm_event_ : *default_instance_->comm_event_;
}
inline ::quipper::PerfDataProto_CommEvent* PerfDataProto_PerfEvent::mutable_comm_event() {
  set_has_comm_event();
  if (comm_event_ == NULL) comm_event_ = new ::quipper::PerfDataProto_CommEvent;
  return comm_event_;
}
inline ::quipper::PerfDataProto_CommEvent* PerfDataProto_PerfEvent::release_comm_event() {
  clear_has_comm_event();
  ::quipper::PerfDataProto_CommEvent* temp = comm_event_;
  comm_event_ = NULL;
  return temp;
}
inline void PerfDataProto_PerfEvent::set_allocated_comm_event(::quipper::PerfDataProto_CommEvent* comm_event) {
  delete comm_event_;
  comm_event_ = comm_event;
  if (comm_event) {
    set_has_comm_event();
  } else {
    clear_has_comm_event();
  }
}

// optional .quipper.PerfDataProto.ForkEvent fork_event = 5;
inline bool PerfDataProto_PerfEvent::has_fork_event() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void PerfDataProto_PerfEvent::set_has_fork_event() {
  _has_bits_[0] |= 0x00000010u;
}
inline void PerfDataProto_PerfEvent::clear_has_fork_event() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void PerfDataProto_PerfEvent::clear_fork_event() {
  if (fork_event_ != NULL) fork_event_->::quipper::PerfDataProto_ForkEvent::Clear();
  clear_has_fork_event();
}
inline const ::quipper::PerfDataProto_ForkEvent& PerfDataProto_PerfEvent::fork_event() const {
  return fork_event_ != NULL ? *fork_event_ : *default_instance_->fork_event_;
}
inline ::quipper::PerfDataProto_ForkEvent* PerfDataProto_PerfEvent::mutable_fork_event() {
  set_has_fork_event();
  if (fork_event_ == NULL) fork_event_ = new ::quipper::PerfDataProto_ForkEvent;
  return fork_event_;
}
inline ::quipper::PerfDataProto_ForkEvent* PerfDataProto_PerfEvent::release_fork_event() {
  clear_has_fork_event();
  ::quipper::PerfDataProto_ForkEvent* temp = fork_event_;
  fork_event_ = NULL;
  return temp;
}
inline void PerfDataProto_PerfEvent::set_allocated_fork_event(::quipper::PerfDataProto_ForkEvent* fork_event) {
  delete fork_event_;
  fork_event_ = fork_event;
  if (fork_event) {
    set_has_fork_event();
  } else {
    clear_has_fork_event();
  }
}

// optional .quipper.PerfDataProto.LostEvent lost_event = 6;
inline bool PerfDataProto_PerfEvent::has_lost_event() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void PerfDataProto_PerfEvent::set_has_lost_event() {
  _has_bits_[0] |= 0x00000020u;
}
inline void PerfDataProto_PerfEvent::clear_has_lost_event() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void PerfDataProto_PerfEvent::clear_lost_event() {
  if (lost_event_ != NULL) lost_event_->::quipper::PerfDataProto_LostEvent::Clear();
  clear_has_lost_event();
}
inline const ::quipper::PerfDataProto_LostEvent& PerfDataProto_PerfEvent::lost_event() const {
  return lost_event_ != NULL ? *lost_event_ : *default_instance_->lost_event_;
}
inline ::quipper::PerfDataProto_LostEvent* PerfDataProto_PerfEvent::mutable_lost_event() {
  set_has_lost_event();
  if (lost_event_ == NULL) lost_event_ = new ::quipper::PerfDataProto_LostEvent;
  return lost_event_;
}
inline ::quipper::PerfDataProto_LostEvent* PerfDataProto_PerfEvent::release_lost_event() {
  clear_has_lost_event();
  ::quipper::PerfDataProto_LostEvent* temp = lost_event_;
  lost_event_ = NULL;
  return temp;
}
inline void PerfDataProto_PerfEvent::set_allocated_lost_event(::quipper::PerfDataProto_LostEvent* lost_event) {
  delete lost_event_;
  lost_event_ = lost_event;
  if (lost_event) {
    set_has_lost_event();
  } else {
    clear_has_lost_event();
  }
}

// optional .quipper.PerfDataProto.ThrottleEvent throttle_event = 7;
inline bool PerfDataProto_PerfEvent::has_throttle_event() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void PerfDataProto_PerfEvent::set_has_throttle_event() {
  _has_bits_[0] |= 0x00000040u;
}
inline void PerfDataProto_PerfEvent::clear_has_throttle_event() {
  _has_bits_[0] &= ~0x00000040u;
}
inline void PerfDataProto_PerfEvent::clear_throttle_event() {
  if (throttle_event_ != NULL) throttle_event_->::quipper::PerfDataProto_ThrottleEvent::Clear();
  clear_has_throttle_event();
}
inline const ::quipper::PerfDataProto_ThrottleEvent& PerfDataProto_PerfEvent::throttle_event() const {
  return throttle_event_ != NULL ? *throttle_event_ : *default_instance_->throttle_event_;
}
inline ::quipper::PerfDataProto_ThrottleEvent* PerfDataProto_PerfEvent::mutable_throttle_event() {
  set_has_throttle_event();
  if (throttle_event_ == NULL) throttle_event_ = new ::quipper::PerfDataProto_ThrottleEvent;
  return throttle_event_;
}
inline ::quipper::PerfDataProto_ThrottleEvent* PerfDataProto_PerfEvent::release_throttle_event() {
  clear_has_throttle_event();
  ::quipper::PerfDataProto_ThrottleEvent* temp = throttle_event_;
  throttle_event_ = NULL;
  return temp;
}
inline void PerfDataProto_PerfEvent::set_allocated_throttle_event(::quipper::PerfDataProto_ThrottleEvent* throttle_event) {
  delete throttle_event_;
  throttle_event_ = throttle_event;
  if (throttle_event) {
    set_has_throttle_event();
  } else {
    clear_has_throttle_event();
  }
}

// optional .quipper.PerfDataProto.ReadEvent read_event = 8;
inline bool PerfDataProto_PerfEvent::has_read_event() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void PerfDataProto_PerfEvent::set_has_read_event() {
  _has_bits_[0] |= 0x00000080u;
}
inline void PerfDataProto_PerfEvent::clear_has_read_event() {
  _has_bits_[0] &= ~0x00000080u;
}
inline void PerfDataProto_PerfEvent::clear_read_event() {
  if (read_event_ != NULL) read_event_->::quipper::PerfDataProto_ReadEvent::Clear();
  clear_has_read_event();
}
inline const ::quipper::PerfDataProto_ReadEvent& PerfDataProto_PerfEvent::read_event() const {
  return read_event_ != NULL ? *read_event_ : *default_instance_->read_event_;
}
inline ::quipper::PerfDataProto_ReadEvent* PerfDataProto_PerfEvent::mutable_read_event() {
  set_has_read_event();
  if (read_event_ == NULL) read_event_ = new ::quipper::PerfDataProto_ReadEvent;
  return read_event_;
}
inline ::quipper::PerfDataProto_ReadEvent* PerfDataProto_PerfEvent::release_read_event() {
  clear_has_read_event();
  ::quipper::PerfDataProto_ReadEvent* temp = read_event_;
  read_event_ = NULL;
  return temp;
}
inline void PerfDataProto_PerfEvent::set_allocated_read_event(::quipper::PerfDataProto_ReadEvent* read_event) {
  delete read_event_;
  read_event_ = read_event;
  if (read_event) {
    set_has_read_event();
  } else {
    clear_has_read_event();
  }
}

// -------------------------------------------------------------------

// PerfDataProto_PerfEventStats

// optional uint32 num_events_read = 1;
inline bool PerfDataProto_PerfEventStats::has_num_events_read() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void PerfDataProto_PerfEventStats::set_has_num_events_read() {
  _has_bits_[0] |= 0x00000001u;
}
inline void PerfDataProto_PerfEventStats::clear_has_num_events_read() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void PerfDataProto_PerfEventStats::clear_num_events_read() {
  num_events_read_ = 0u;
  clear_has_num_events_read();
}
inline ::google::protobuf::uint32 PerfDataProto_PerfEventStats::num_events_read() const {
  return num_events_read_;
}
inline void PerfDataProto_PerfEventStats::set_num_events_read(::google::protobuf::uint32 value) {
  set_has_num_events_read();
  num_events_read_ = value;
}

// optional uint32 num_sample_events = 2;
inline bool PerfDataProto_PerfEventStats::has_num_sample_events() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void PerfDataProto_PerfEventStats::set_has_num_sample_events() {
  _has_bits_[0] |= 0x00000002u;
}
inline void PerfDataProto_PerfEventStats::clear_has_num_sample_events() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void PerfDataProto_PerfEventStats::clear_num_sample_events() {
  num_sample_events_ = 0u;
  clear_has_num_sample_events();
}
inline ::google::protobuf::uint32 PerfDataProto_PerfEventStats::num_sample_events() const {
  return num_sample_events_;
}
inline void PerfDataProto_PerfEventStats::set_num_sample_events(::google::protobuf::uint32 value) {
  set_has_num_sample_events();
  num_sample_events_ = value;
}

// optional uint32 num_mmap_events = 3;
inline bool PerfDataProto_PerfEventStats::has_num_mmap_events() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void PerfDataProto_PerfEventStats::set_has_num_mmap_events() {
  _has_bits_[0] |= 0x00000004u;
}
inline void PerfDataProto_PerfEventStats::clear_has_num_mmap_events() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void PerfDataProto_PerfEventStats::clear_num_mmap_events() {
  num_mmap_events_ = 0u;
  clear_has_num_mmap_events();
}
inline ::google::protobuf::uint32 PerfDataProto_PerfEventStats::num_mmap_events() const {
  return num_mmap_events_;
}
inline void PerfDataProto_PerfEventStats::set_num_mmap_events(::google::protobuf::uint32 value) {
  set_has_num_mmap_events();
  num_mmap_events_ = value;
}

// optional uint32 num_fork_events = 4;
inline bool PerfDataProto_PerfEventStats::has_num_fork_events() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void PerfDataProto_PerfEventStats::set_has_num_fork_events() {
  _has_bits_[0] |= 0x00000008u;
}
inline void PerfDataProto_PerfEventStats::clear_has_num_fork_events() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void PerfDataProto_PerfEventStats::clear_num_fork_events() {
  num_fork_events_ = 0u;
  clear_has_num_fork_events();
}
inline ::google::protobuf::uint32 PerfDataProto_PerfEventStats::num_fork_events() const {
  return num_fork_events_;
}
inline void PerfDataProto_PerfEventStats::set_num_fork_events(::google::protobuf::uint32 value) {
  set_has_num_fork_events();
  num_fork_events_ = value;
}

// optional uint32 num_exit_events = 5;
inline bool PerfDataProto_PerfEventStats::has_num_exit_events() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void PerfDataProto_PerfEventStats::set_has_num_exit_events() {
  _has_bits_[0] |= 0x00000010u;
}
inline void PerfDataProto_PerfEventStats::clear_has_num_exit_events() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void PerfDataProto_PerfEventStats::clear_num_exit_events() {
  num_exit_events_ = 0u;
  clear_has_num_exit_events();
}
inline ::google::protobuf::uint32 PerfDataProto_PerfEventStats::num_exit_events() const {
  return num_exit_events_;
}
inline void PerfDataProto_PerfEventStats::set_num_exit_events(::google::protobuf::uint32 value) {
  set_has_num_exit_events();
  num_exit_events_ = value;
}

// optional uint32 num_sample_events_mapped = 6;
inline bool PerfDataProto_PerfEventStats::has_num_sample_events_mapped() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void PerfDataProto_PerfEventStats::set_has_num_sample_events_mapped() {
  _has_bits_[0] |= 0x00000020u;
}
inline void PerfDataProto_PerfEventStats::clear_has_num_sample_events_mapped() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void PerfDataProto_PerfEventStats::clear_num_sample_events_mapped() {
  num_sample_events_mapped_ = 0u;
  clear_has_num_sample_events_mapped();
}
inline ::google::protobuf::uint32 PerfDataProto_PerfEventStats::num_sample_events_mapped() const {
  return num_sample_events_mapped_;
}
inline void PerfDataProto_PerfEventStats::set_num_sample_events_mapped(::google::protobuf::uint32 value) {
  set_has_num_sample_events_mapped();
  num_sample_events_mapped_ = value;
}

// optional bool did_remap = 7;
inline bool PerfDataProto_PerfEventStats::has_did_remap() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void PerfDataProto_PerfEventStats::set_has_did_remap() {
  _has_bits_[0] |= 0x00000040u;
}
inline void PerfDataProto_PerfEventStats::clear_has_did_remap() {
  _has_bits_[0] &= ~0x00000040u;
}
inline void PerfDataProto_PerfEventStats::clear_did_remap() {
  did_remap_ = false;
  clear_has_did_remap();
}
inline bool PerfDataProto_PerfEventStats::did_remap() const {
  return did_remap_;
}
inline void PerfDataProto_PerfEventStats::set_did_remap(bool value) {
  set_has_did_remap();
  did_remap_ = value;
}

// -------------------------------------------------------------------

// PerfDataProto_PerfUint32Metadata

// optional uint32 type = 1;
inline bool PerfDataProto_PerfUint32Metadata::has_type() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void PerfDataProto_PerfUint32Metadata::set_has_type() {
  _has_bits_[0] |= 0x00000001u;
}
inline void PerfDataProto_PerfUint32Metadata::clear_has_type() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void PerfDataProto_PerfUint32Metadata::clear_type() {
  type_ = 0u;
  clear_has_type();
}
inline ::google::protobuf::uint32 PerfDataProto_PerfUint32Metadata::type() const {
  return type_;
}
inline void PerfDataProto_PerfUint32Metadata::set_type(::google::protobuf::uint32 value) {
  set_has_type();
  type_ = value;
}

// repeated uint32 data = 2;
inline int PerfDataProto_PerfUint32Metadata::data_size() const {
  return data_.size();
}
inline void PerfDataProto_PerfUint32Metadata::clear_data() {
  data_.Clear();
}
inline ::google::protobuf::uint32 PerfDataProto_PerfUint32Metadata::data(int index) const {
  return data_.Get(index);
}
inline void PerfDataProto_PerfUint32Metadata::set_data(int index, ::google::protobuf::uint32 value) {
  data_.Set(index, value);
}
inline void PerfDataProto_PerfUint32Metadata::add_data(::google::protobuf::uint32 value) {
  data_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
PerfDataProto_PerfUint32Metadata::data() const {
  return data_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
PerfDataProto_PerfUint32Metadata::mutable_data() {
  return &data_;
}

// -------------------------------------------------------------------

// PerfDataProto_PerfUint64Metadata

// optional uint32 type = 1;
inline bool PerfDataProto_PerfUint64Metadata::has_type() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void PerfDataProto_PerfUint64Metadata::set_has_type() {
  _has_bits_[0] |= 0x00000001u;
}
inline void PerfDataProto_PerfUint64Metadata::clear_has_type() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void PerfDataProto_PerfUint64Metadata::clear_type() {
  type_ = 0u;
  clear_has_type();
}
inline ::google::protobuf::uint32 PerfDataProto_PerfUint64Metadata::type() const {
  return type_;
}
inline void PerfDataProto_PerfUint64Metadata::set_type(::google::protobuf::uint32 value) {
  set_has_type();
  type_ = value;
}

// repeated uint64 data = 2;
inline int PerfDataProto_PerfUint64Metadata::data_size() const {
  return data_.size();
}
inline void PerfDataProto_PerfUint64Metadata::clear_data() {
  data_.Clear();
}
inline ::google::protobuf::uint64 PerfDataProto_PerfUint64Metadata::data(int index) const {
  return data_.Get(index);
}
inline void PerfDataProto_PerfUint64Metadata::set_data(int index, ::google::protobuf::uint64 value) {
  data_.Set(index, value);
}
inline void PerfDataProto_PerfUint64Metadata::add_data(::google::protobuf::uint64 value) {
  data_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
PerfDataProto_PerfUint64Metadata::data() const {
  return data_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
PerfDataProto_PerfUint64Metadata::mutable_data() {
  return &data_;
}

// -------------------------------------------------------------------

// PerfDataProto_PerfTracingMetadata

// optional bytes tracing_data = 1;
inline bool PerfDataProto_PerfTracingMetadata::has_tracing_data() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void PerfDataProto_PerfTracingMetadata::set_has_tracing_data() {
  _has_bits_[0] |= 0x00000001u;
}
inline void PerfDataProto_PerfTracingMetadata::clear_has_tracing_data() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void PerfDataProto_PerfTracingMetadata::clear_tracing_data() {
  if (tracing_data_ != &::google::protobuf::internal::kEmptyString) {
    tracing_data_->clear();
  }
  clear_has_tracing_data();
}
inline const ::std::string& PerfDataProto_PerfTracingMetadata::tracing_data() const {
  return *tracing_data_;
}
inline void PerfDataProto_PerfTracingMetadata::set_tracing_data(const ::std::string& value) {
  set_has_tracing_data();
  if (tracing_data_ == &::google::protobuf::internal::kEmptyString) {
    tracing_data_ = new ::std::string;
  }
  tracing_data_->assign(value);
}
inline void PerfDataProto_PerfTracingMetadata::set_tracing_data(const char* value) {
  set_has_tracing_data();
  if (tracing_data_ == &::google::protobuf::internal::kEmptyString) {
    tracing_data_ = new ::std::string;
  }
  tracing_data_->assign(value);
}
inline void PerfDataProto_PerfTracingMetadata::set_tracing_data(const void* value, size_t size) {
  set_has_tracing_data();
  if (tracing_data_ == &::google::protobuf::internal::kEmptyString) {
    tracing_data_ = new ::std::string;
  }
  tracing_data_->assign(reinterpret_cast<const char*>(value), size);
}
inline ::std::string* PerfDataProto_PerfTracingMetadata::mutable_tracing_data() {
  set_has_tracing_data();
  if (tracing_data_ == &::google::protobuf::internal::kEmptyString) {
    tracing_data_ = new ::std::string;
  }
  return tracing_data_;
}
inline ::std::string* PerfDataProto_PerfTracingMetadata::release_tracing_data() {
  clear_has_tracing_data();
  if (tracing_data_ == &::google::protobuf::internal::kEmptyString) {
    return NULL;
  } else {
    ::std::string* temp = tracing_data_;
    tracing_data_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
    return temp;
  }
}
inline void PerfDataProto_PerfTracingMetadata::set_allocated_tracing_data(::std::string* tracing_data) {
  if (tracing_data_ != &::google::protobuf::internal::kEmptyString) {
    delete tracing_data_;
  }
  if (tracing_data) {
    set_has_tracing_data();
    tracing_data_ = tracing_data;
  } else {
    clear_has_tracing_data();
    tracing_data_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
  }
}

// optional uint64 tracing_data_md5_prefix = 2;
inline bool PerfDataProto_PerfTracingMetadata::has_tracing_data_md5_prefix() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void PerfDataProto_PerfTracingMetadata::set_has_tracing_data_md5_prefix() {
  _has_bits_[0] |= 0x00000002u;
}
inline void PerfDataProto_PerfTracingMetadata::clear_has_tracing_data_md5_prefix() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void PerfDataProto_PerfTracingMetadata::clear_tracing_data_md5_prefix() {
  tracing_data_md5_prefix_ = GOOGLE_ULONGLONG(0);
  clear_has_tracing_data_md5_prefix();
}
inline ::google::protobuf::uint64 PerfDataProto_PerfTracingMetadata::tracing_data_md5_prefix() const {
  return tracing_data_md5_prefix_;
}
inline void PerfDataProto_PerfTracingMetadata::set_tracing_data_md5_prefix(::google::protobuf::uint64 value) {
  set_has_tracing_data_md5_prefix();
  tracing_data_md5_prefix_ = value;
}

// -------------------------------------------------------------------

// PerfDataProto_PerfBuildID

// optional uint32 misc = 1;
inline bool PerfDataProto_PerfBuildID::has_misc() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void PerfDataProto_PerfBuildID::set_has_misc() {
  _has_bits_[0] |= 0x00000001u;
}
inline void PerfDataProto_PerfBuildID::clear_has_misc() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void PerfDataProto_PerfBuildID::clear_misc() {
  misc_ = 0u;
  clear_has_misc();
}
inline ::google::protobuf::uint32 PerfDataProto_PerfBuildID::misc() const {
  return misc_;
}
inline void PerfDataProto_PerfBuildID::set_misc(::google::protobuf::uint32 value) {
  set_has_misc();
  misc_ = value;
}

// optional uint32 pid = 2;
inline bool PerfDataProto_PerfBuildID::has_pid() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void PerfDataProto_PerfBuildID::set_has_pid() {
  _has_bits_[0] |= 0x00000002u;
}
inline void PerfDataProto_PerfBuildID::clear_has_pid() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void PerfDataProto_PerfBuildID::clear_pid() {
  pid_ = 0u;
  clear_has_pid();
}
inline ::google::protobuf::uint32 PerfDataProto_PerfBuildID::pid() const {
  return pid_;
}
inline void PerfDataProto_PerfBuildID::set_pid(::google::protobuf::uint32 value) {
  set_has_pid();
  pid_ = value;
}

// optional bytes build_id_hash = 3;
inline bool PerfDataProto_PerfBuildID::has_build_id_hash() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void PerfDataProto_PerfBuildID::set_has_build_id_hash() {
  _has_bits_[0] |= 0x00000004u;
}
inline void PerfDataProto_PerfBuildID::clear_has_build_id_hash() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void PerfDataProto_PerfBuildID::clear_build_id_hash() {
  if (build_id_hash_ != &::google::protobuf::internal::kEmptyString) {
    build_id_hash_->clear();
  }
  clear_has_build_id_hash();
}
inline const ::std::string& PerfDataProto_PerfBuildID::build_id_hash() const {
  return *build_id_hash_;
}
inline void PerfDataProto_PerfBuildID::set_build_id_hash(const ::std::string& value) {
  set_has_build_id_hash();
  if (build_id_hash_ == &::google::protobuf::internal::kEmptyString) {
    build_id_hash_ = new ::std::string;
  }
  build_id_hash_->assign(value);
}
inline void PerfDataProto_PerfBuildID::set_build_id_hash(const char* value) {
  set_has_build_id_hash();
  if (build_id_hash_ == &::google::protobuf::internal::kEmptyString) {
    build_id_hash_ = new ::std::string;
  }
  build_id_hash_->assign(value);
}
inline void PerfDataProto_PerfBuildID::set_build_id_hash(const void* value, size_t size) {
  set_has_build_id_hash();
  if (build_id_hash_ == &::google::protobuf::internal::kEmptyString) {
    build_id_hash_ = new ::std::string;
  }
  build_id_hash_->assign(reinterpret_cast<const char*>(value), size);
}
inline ::std::string* PerfDataProto_PerfBuildID::mutable_build_id_hash() {
  set_has_build_id_hash();
  if (build_id_hash_ == &::google::protobuf::internal::kEmptyString) {
    build_id_hash_ = new ::std::string;
  }
  return build_id_hash_;
}
inline ::std::string* PerfDataProto_PerfBuildID::release_build_id_hash() {
  clear_has_build_id_hash();
  if (build_id_hash_ == &::google::protobuf::internal::kEmptyString) {
    return NULL;
  } else {
    ::std::string* temp = build_id_hash_;
    build_id_hash_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
    return temp;
  }
}
inline void PerfDataProto_PerfBuildID::set_allocated_build_id_hash(::std::string* build_id_hash) {
  if (build_id_hash_ != &::google::protobuf::internal::kEmptyString) {
    delete build_id_hash_;
  }
  if (build_id_hash) {
    set_has_build_id_hash();
    build_id_hash_ = build_id_hash;
  } else {
    clear_has_build_id_hash();
    build_id_hash_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
  }
}

// optional string filename = 4;
inline bool PerfDataProto_PerfBuildID::has_filename() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void PerfDataProto_PerfBuildID::set_has_filename() {
  _has_bits_[0] |= 0x00000008u;
}
inline void PerfDataProto_PerfBuildID::clear_has_filename() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void PerfDataProto_PerfBuildID::clear_filename() {
  if (filename_ != &::google::protobuf::internal::kEmptyString) {
    filename_->clear();
  }
  clear_has_filename();
}
inline const ::std::string& PerfDataProto_PerfBuildID::filename() const {
  return *filename_;
}
inline void PerfDataProto_PerfBuildID::set_filename(const ::std::string& value) {
  set_has_filename();
  if (filename_ == &::google::protobuf::internal::kEmptyString) {
    filename_ = new ::std::string;
  }
  filename_->assign(value);
}
inline void PerfDataProto_PerfBuildID::set_filename(const char* value) {
  set_has_filename();
  if (filename_ == &::google::protobuf::internal::kEmptyString) {
    filename_ = new ::std::string;
  }
  filename_->assign(value);
}
inline void PerfDataProto_PerfBuildID::set_filename(const char* value, size_t size) {
  set_has_filename();
  if (filename_ == &::google::protobuf::internal::kEmptyString) {
    filename_ = new ::std::string;
  }
  filename_->assign(reinterpret_cast<const char*>(value), size);
}
inline ::std::string* PerfDataProto_PerfBuildID::mutable_filename() {
  set_has_filename();
  if (filename_ == &::google::protobuf::internal::kEmptyString) {
    filename_ = new ::std::string;
  }
  return filename_;
}
inline ::std::string* PerfDataProto_PerfBuildID::release_filename() {
  clear_has_filename();
  if (filename_ == &::google::protobuf::internal::kEmptyString) {
    return NULL;
  } else {
    ::std::string* temp = filename_;
    filename_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
    return temp;
  }
}
inline void PerfDataProto_PerfBuildID::set_allocated_filename(::std::string* filename) {
  if (filename_ != &::google::protobuf::internal::kEmptyString) {
    delete filename_;
  }
  if (filename) {
    set_has_filename();
    filename_ = filename;
  } else {
    clear_has_filename();
    filename_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
  }
}

// optional uint64 filename_md5_prefix = 5;
inline bool PerfDataProto_PerfBuildID::has_filename_md5_prefix() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void PerfDataProto_PerfBuildID::set_has_filename_md5_prefix() {
  _has_bits_[0] |= 0x00000010u;
}
inline void PerfDataProto_PerfBuildID::clear_has_filename_md5_prefix() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void PerfDataProto_PerfBuildID::clear_filename_md5_prefix() {
  filename_md5_prefix_ = GOOGLE_ULONGLONG(0);
  clear_has_filename_md5_prefix();
}
inline ::google::protobuf::uint64 PerfDataProto_PerfBuildID::filename_md5_prefix() const {
  return filename_md5_prefix_;
}
inline void PerfDataProto_PerfBuildID::set_filename_md5_prefix(::google::protobuf::uint64 value) {
  set_has_filename_md5_prefix();
  filename_md5_prefix_ = value;
}

// -------------------------------------------------------------------

// PerfDataProto_PerfCPUTopologyMetadata

// repeated string core_siblings = 1;
inline int PerfDataProto_PerfCPUTopologyMetadata::core_siblings_size() const {
  return core_siblings_.size();
}
inline void PerfDataProto_PerfCPUTopologyMetadata::clear_core_siblings() {
  core_siblings_.Clear();
}
inline const ::std::string& PerfDataProto_PerfCPUTopologyMetadata::core_siblings(int index) const {
  return core_siblings_.Get(index);
}
inline ::std::string* PerfDataProto_PerfCPUTopologyMetadata::mutable_core_siblings(int index) {
  return core_siblings_.Mutable(index);
}
inline void PerfDataProto_PerfCPUTopologyMetadata::set_core_siblings(int index, const ::std::string& value) {
  core_siblings_.Mutable(index)->assign(value);
}
inline void PerfDataProto_PerfCPUTopologyMetadata::set_core_siblings(int index, const char* value) {
  core_siblings_.Mutable(index)->assign(value);
}
inline void PerfDataProto_PerfCPUTopologyMetadata::set_core_siblings(int index, const char* value, size_t size) {
  core_siblings_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
}
inline ::std::string* PerfDataProto_PerfCPUTopologyMetadata::add_core_siblings() {
  return core_siblings_.Add();
}
inline void PerfDataProto_PerfCPUTopologyMetadata::add_core_siblings(const ::std::string& value) {
  core_siblings_.Add()->assign(value);
}
inline void PerfDataProto_PerfCPUTopologyMetadata::add_core_siblings(const char* value) {
  core_siblings_.Add()->assign(value);
}
inline void PerfDataProto_PerfCPUTopologyMetadata::add_core_siblings(const char* value, size_t size) {
  core_siblings_.Add()->assign(reinterpret_cast<const char*>(value), size);
}
inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
PerfDataProto_PerfCPUTopologyMetadata::core_siblings() const {
  return core_siblings_;
}
inline ::google::protobuf::RepeatedPtrField< ::std::string>*
PerfDataProto_PerfCPUTopologyMetadata::mutable_core_siblings() {
  return &core_siblings_;
}

// repeated uint64 core_siblings_md5_prefix = 2;
inline int PerfDataProto_PerfCPUTopologyMetadata::core_siblings_md5_prefix_size() const {
  return core_siblings_md5_prefix_.size();
}
inline void PerfDataProto_PerfCPUTopologyMetadata::clear_core_siblings_md5_prefix() {
  core_siblings_md5_prefix_.Clear();
}
inline ::google::protobuf::uint64 PerfDataProto_PerfCPUTopologyMetadata::core_siblings_md5_prefix(int index) const {
  return core_siblings_md5_prefix_.Get(index);
}
inline void PerfDataProto_PerfCPUTopologyMetadata::set_core_siblings_md5_prefix(int index, ::google::protobuf::uint64 value) {
  core_siblings_md5_prefix_.Set(index, value);
}
inline void PerfDataProto_PerfCPUTopologyMetadata::add_core_siblings_md5_prefix(::google::protobuf::uint64 value) {
  core_siblings_md5_prefix_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
PerfDataProto_PerfCPUTopologyMetadata::core_siblings_md5_prefix() const {
  return core_siblings_md5_prefix_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
PerfDataProto_PerfCPUTopologyMetadata::mutable_core_siblings_md5_prefix() {
  return &core_siblings_md5_prefix_;
}

// repeated string thread_siblings = 3;
inline int PerfDataProto_PerfCPUTopologyMetadata::thread_siblings_size() const {
  return thread_siblings_.size();
}
inline void PerfDataProto_PerfCPUTopologyMetadata::clear_thread_siblings() {
  thread_siblings_.Clear();
}
inline const ::std::string& PerfDataProto_PerfCPUTopologyMetadata::thread_siblings(int index) const {
  return thread_siblings_.Get(index);
}
inline ::std::string* PerfDataProto_PerfCPUTopologyMetadata::mutable_thread_siblings(int index) {
  return thread_siblings_.Mutable(index);
}
inline void PerfDataProto_PerfCPUTopologyMetadata::set_thread_siblings(int index, const ::std::string& value) {
  thread_siblings_.Mutable(index)->assign(value);
}
inline void PerfDataProto_PerfCPUTopologyMetadata::set_thread_siblings(int index, const char* value) {
  thread_siblings_.Mutable(index)->assign(value);
}
inline void PerfDataProto_PerfCPUTopologyMetadata::set_thread_siblings(int index, const char* value, size_t size) {
  thread_siblings_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
}
inline ::std::string* PerfDataProto_PerfCPUTopologyMetadata::add_thread_siblings() {
  return thread_siblings_.Add();
}
inline void PerfDataProto_PerfCPUTopologyMetadata::add_thread_siblings(const ::std::string& value) {
  thread_siblings_.Add()->assign(value);
}
inline void PerfDataProto_PerfCPUTopologyMetadata::add_thread_siblings(const char* value) {
  thread_siblings_.Add()->assign(value);
}
inline void PerfDataProto_PerfCPUTopologyMetadata::add_thread_siblings(const char* value, size_t size) {
  thread_siblings_.Add()->assign(reinterpret_cast<const char*>(value), size);
}
inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
PerfDataProto_PerfCPUTopologyMetadata::thread_siblings() const {
  return thread_siblings_;
}
inline ::google::protobuf::RepeatedPtrField< ::std::string>*
PerfDataProto_PerfCPUTopologyMetadata::mutable_thread_siblings() {
  return &thread_siblings_;
}

// repeated uint64 thread_siblings_md5_prefix = 4;
inline int PerfDataProto_PerfCPUTopologyMetadata::thread_siblings_md5_prefix_size() const {
  return thread_siblings_md5_prefix_.size();
}
inline void PerfDataProto_PerfCPUTopologyMetadata::clear_thread_siblings_md5_prefix() {
  thread_siblings_md5_prefix_.Clear();
}
inline ::google::protobuf::uint64 PerfDataProto_PerfCPUTopologyMetadata::thread_siblings_md5_prefix(int index) const {
  return thread_siblings_md5_prefix_.Get(index);
}
inline void PerfDataProto_PerfCPUTopologyMetadata::set_thread_siblings_md5_prefix(int index, ::google::protobuf::uint64 value) {
  thread_siblings_md5_prefix_.Set(index, value);
}
inline void PerfDataProto_PerfCPUTopologyMetadata::add_thread_siblings_md5_prefix(::google::protobuf::uint64 value) {
  thread_siblings_md5_prefix_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
PerfDataProto_PerfCPUTopologyMetadata::thread_siblings_md5_prefix() const {
  return thread_siblings_md5_prefix_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
PerfDataProto_PerfCPUTopologyMetadata::mutable_thread_siblings_md5_prefix() {
  return &thread_siblings_md5_prefix_;
}

// -------------------------------------------------------------------

// PerfDataProto_PerfNodeTopologyMetadata

// optional uint32 id = 1;
inline bool PerfDataProto_PerfNodeTopologyMetadata::has_id() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void PerfDataProto_PerfNodeTopologyMetadata::set_has_id() {
  _has_bits_[0] |= 0x00000001u;
}
inline void PerfDataProto_PerfNodeTopologyMetadata::clear_has_id() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void PerfDataProto_PerfNodeTopologyMetadata::clear_id() {
  id_ = 0u;
  clear_has_id();
}
inline ::google::protobuf::uint32 PerfDataProto_PerfNodeTopologyMetadata::id() const {
  return id_;
}
inline void PerfDataProto_PerfNodeTopologyMetadata::set_id(::google::protobuf::uint32 value) {
  set_has_id();
  id_ = value;
}

// optional uint64 total_memory = 2;
inline bool PerfDataProto_PerfNodeTopologyMetadata::has_total_memory() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void PerfDataProto_PerfNodeTopologyMetadata::set_has_total_memory() {
  _has_bits_[0] |= 0x00000002u;
}
inline void PerfDataProto_PerfNodeTopologyMetadata::clear_has_total_memory() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void PerfDataProto_PerfNodeTopologyMetadata::clear_total_memory() {
  total_memory_ = GOOGLE_ULONGLONG(0);
  clear_has_total_memory();
}
inline ::google::protobuf::uint64 PerfDataProto_PerfNodeTopologyMetadata::total_memory() const {
  return total_memory_;
}
inline void PerfDataProto_PerfNodeTopologyMetadata::set_total_memory(::google::protobuf::uint64 value) {
  set_has_total_memory();
  total_memory_ = value;
}

// optional uint64 free_memory = 3;
inline bool PerfDataProto_PerfNodeTopologyMetadata::has_free_memory() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void PerfDataProto_PerfNodeTopologyMetadata::set_has_free_memory() {
  _has_bits_[0] |= 0x00000004u;
}
inline void PerfDataProto_PerfNodeTopologyMetadata::clear_has_free_memory() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void PerfDataProto_PerfNodeTopologyMetadata::clear_free_memory() {
  free_memory_ = GOOGLE_ULONGLONG(0);
  clear_has_free_memory();
}
inline ::google::protobuf::uint64 PerfDataProto_PerfNodeTopologyMetadata::free_memory() const {
  return free_memory_;
}
inline void PerfDataProto_PerfNodeTopologyMetadata::set_free_memory(::google::protobuf::uint64 value) {
  set_has_free_memory();
  free_memory_ = value;
}

// optional string cpu_list = 4;
inline bool PerfDataProto_PerfNodeTopologyMetadata::has_cpu_list() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void PerfDataProto_PerfNodeTopologyMetadata::set_has_cpu_list() {
  _has_bits_[0] |= 0x00000008u;
}
inline void PerfDataProto_PerfNodeTopologyMetadata::clear_has_cpu_list() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void PerfDataProto_PerfNodeTopologyMetadata::clear_cpu_list() {
  if (cpu_list_ != &::google::protobuf::internal::kEmptyString) {
    cpu_list_->clear();
  }
  clear_has_cpu_list();
}
inline const ::std::string& PerfDataProto_PerfNodeTopologyMetadata::cpu_list() const {
  return *cpu_list_;
}
inline void PerfDataProto_PerfNodeTopologyMetadata::set_cpu_list(const ::std::string& value) {
  set_has_cpu_list();
  if (cpu_list_ == &::google::protobuf::internal::kEmptyString) {
    cpu_list_ = new ::std::string;
  }
  cpu_list_->assign(value);
}
inline void PerfDataProto_PerfNodeTopologyMetadata::set_cpu_list(const char* value) {
  set_has_cpu_list();
  if (cpu_list_ == &::google::protobuf::internal::kEmptyString) {
    cpu_list_ = new ::std::string;
  }
  cpu_list_->assign(value);
}
inline void PerfDataProto_PerfNodeTopologyMetadata::set_cpu_list(const char* value, size_t size) {
  set_has_cpu_list();
  if (cpu_list_ == &::google::protobuf::internal::kEmptyString) {
    cpu_list_ = new ::std::string;
  }
  cpu_list_->assign(reinterpret_cast<const char*>(value), size);
}
inline ::std::string* PerfDataProto_PerfNodeTopologyMetadata::mutable_cpu_list() {
  set_has_cpu_list();
  if (cpu_list_ == &::google::protobuf::internal::kEmptyString) {
    cpu_list_ = new ::std::string;
  }
  return cpu_list_;
}
inline ::std::string* PerfDataProto_PerfNodeTopologyMetadata::release_cpu_list() {
  clear_has_cpu_list();
  if (cpu_list_ == &::google::protobuf::internal::kEmptyString) {
    return NULL;
  } else {
    ::std::string* temp = cpu_list_;
    cpu_list_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
    return temp;
  }
}
inline void PerfDataProto_PerfNodeTopologyMetadata::set_allocated_cpu_list(::std::string* cpu_list) {
  if (cpu_list_ != &::google::protobuf::internal::kEmptyString) {
    delete cpu_list_;
  }
  if (cpu_list) {
    set_has_cpu_list();
    cpu_list_ = cpu_list;
  } else {
    clear_has_cpu_list();
    cpu_list_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
  }
}

// optional uint64 cpu_list_md5_prefix = 5;
inline bool PerfDataProto_PerfNodeTopologyMetadata::has_cpu_list_md5_prefix() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void PerfDataProto_PerfNodeTopologyMetadata::set_has_cpu_list_md5_prefix() {
  _has_bits_[0] |= 0x00000010u;
}
inline void PerfDataProto_PerfNodeTopologyMetadata::clear_has_cpu_list_md5_prefix() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void PerfDataProto_PerfNodeTopologyMetadata::clear_cpu_list_md5_prefix() {
  cpu_list_md5_prefix_ = GOOGLE_ULONGLONG(0);
  clear_has_cpu_list_md5_prefix();
}
inline ::google::protobuf::uint64 PerfDataProto_PerfNodeTopologyMetadata::cpu_list_md5_prefix() const {
  return cpu_list_md5_prefix_;
}
inline void PerfDataProto_PerfNodeTopologyMetadata::set_cpu_list_md5_prefix(::google::protobuf::uint64 value) {
  set_has_cpu_list_md5_prefix();
  cpu_list_md5_prefix_ = value;
}

// -------------------------------------------------------------------

// PerfDataProto_StringMetadata_StringAndMd5sumPrefix

// optional string value = 1;
inline bool PerfDataProto_StringMetadata_StringAndMd5sumPrefix::has_value() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void PerfDataProto_StringMetadata_StringAndMd5sumPrefix::set_has_value() {
  _has_bits_[0] |= 0x00000001u;
}
inline void PerfDataProto_StringMetadata_StringAndMd5sumPrefix::clear_has_value() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void PerfDataProto_StringMetadata_StringAndMd5sumPrefix::clear_value() {
  if (value_ != &::google::protobuf::internal::kEmptyString) {
    value_->clear();
  }
  clear_has_value();
}
inline const ::std::string& PerfDataProto_StringMetadata_StringAndMd5sumPrefix::value() const {
  return *value_;
}
inline void PerfDataProto_StringMetadata_StringAndMd5sumPrefix::set_value(const ::std::string& value) {
  set_has_value();
  if (value_ == &::google::protobuf::internal::kEmptyString) {
    value_ = new ::std::string;
  }
  value_->assign(value);
}
inline void PerfDataProto_StringMetadata_StringAndMd5sumPrefix::set_value(const char* value) {
  set_has_value();
  if (value_ == &::google::protobuf::internal::kEmptyString) {
    value_ = new ::std::string;
  }
  value_->assign(value);
}
inline void PerfDataProto_StringMetadata_StringAndMd5sumPrefix::set_value(const char* value, size_t size) {
  set_has_value();
  if (value_ == &::google::protobuf::internal::kEmptyString) {
    value_ = new ::std::string;
  }
  value_->assign(reinterpret_cast<const char*>(value), size);
}
inline ::std::string* PerfDataProto_StringMetadata_StringAndMd5sumPrefix::mutable_value() {
  set_has_value();
  if (value_ == &::google::protobuf::internal::kEmptyString) {
    value_ = new ::std::string;
  }
  return value_;
}
inline ::std::string* PerfDataProto_StringMetadata_StringAndMd5sumPrefix::release_value() {
  clear_has_value();
  if (value_ == &::google::protobuf::internal::kEmptyString) {
    return NULL;
  } else {
    ::std::string* temp = value_;
    value_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
    return temp;
  }
}
inline void PerfDataProto_StringMetadata_StringAndMd5sumPrefix::set_allocated_value(::std::string* value) {
  if (value_ != &::google::protobuf::internal::kEmptyString) {
    delete value_;
  }
  if (value) {
    set_has_value();
    value_ = value;
  } else {
    clear_has_value();
    value_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
  }
}

// optional uint64 value_md5_prefix = 2;
inline bool PerfDataProto_StringMetadata_StringAndMd5sumPrefix::has_value_md5_prefix() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void PerfDataProto_StringMetadata_StringAndMd5sumPrefix::set_has_value_md5_prefix() {
  _has_bits_[0] |= 0x00000002u;
}
inline void PerfDataProto_StringMetadata_StringAndMd5sumPrefix::clear_has_value_md5_prefix() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void PerfDataProto_StringMetadata_StringAndMd5sumPrefix::clear_value_md5_prefix() {
  value_md5_prefix_ = GOOGLE_ULONGLONG(0);
  clear_has_value_md5_prefix();
}
inline ::google::protobuf::uint64 PerfDataProto_StringMetadata_StringAndMd5sumPrefix::value_md5_prefix() const {
  return value_md5_prefix_;
}
inline void PerfDataProto_StringMetadata_StringAndMd5sumPrefix::set_value_md5_prefix(::google::protobuf::uint64 value) {
  set_has_value_md5_prefix();
  value_md5_prefix_ = value;
}

// -------------------------------------------------------------------

// PerfDataProto_StringMetadata

// optional .quipper.PerfDataProto.StringMetadata.StringAndMd5sumPrefix hostname = 1;
inline bool PerfDataProto_StringMetadata::has_hostname() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void PerfDataProto_StringMetadata::set_has_hostname() {
  _has_bits_[0] |= 0x00000001u;
}
inline void PerfDataProto_StringMetadata::clear_has_hostname() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void PerfDataProto_StringMetadata::clear_hostname() {
  if (hostname_ != NULL) hostname_->::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix::Clear();
  clear_has_hostname();
}
inline const ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix& PerfDataProto_StringMetadata::hostname() const {
  return hostname_ != NULL ? *hostname_ : *default_instance_->hostname_;
}
inline ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* PerfDataProto_StringMetadata::mutable_hostname() {
  set_has_hostname();
  if (hostname_ == NULL) hostname_ = new ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix;
  return hostname_;
}
inline ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* PerfDataProto_StringMetadata::release_hostname() {
  clear_has_hostname();
  ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* temp = hostname_;
  hostname_ = NULL;
  return temp;
}
inline void PerfDataProto_StringMetadata::set_allocated_hostname(::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* hostname) {
  delete hostname_;
  hostname_ = hostname;
  if (hostname) {
    set_has_hostname();
  } else {
    clear_has_hostname();
  }
}

// optional .quipper.PerfDataProto.StringMetadata.StringAndMd5sumPrefix kernel_version = 2;
inline bool PerfDataProto_StringMetadata::has_kernel_version() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void PerfDataProto_StringMetadata::set_has_kernel_version() {
  _has_bits_[0] |= 0x00000002u;
}
inline void PerfDataProto_StringMetadata::clear_has_kernel_version() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void PerfDataProto_StringMetadata::clear_kernel_version() {
  if (kernel_version_ != NULL) kernel_version_->::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix::Clear();
  clear_has_kernel_version();
}
inline const ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix& PerfDataProto_StringMetadata::kernel_version() const {
  return kernel_version_ != NULL ? *kernel_version_ : *default_instance_->kernel_version_;
}
inline ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* PerfDataProto_StringMetadata::mutable_kernel_version() {
  set_has_kernel_version();
  if (kernel_version_ == NULL) kernel_version_ = new ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix;
  return kernel_version_;
}
inline ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* PerfDataProto_StringMetadata::release_kernel_version() {
  clear_has_kernel_version();
  ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* temp = kernel_version_;
  kernel_version_ = NULL;
  return temp;
}
inline void PerfDataProto_StringMetadata::set_allocated_kernel_version(::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* kernel_version) {
  delete kernel_version_;
  kernel_version_ = kernel_version;
  if (kernel_version) {
    set_has_kernel_version();
  } else {
    clear_has_kernel_version();
  }
}

// optional .quipper.PerfDataProto.StringMetadata.StringAndMd5sumPrefix perf_version = 3;
inline bool PerfDataProto_StringMetadata::has_perf_version() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void PerfDataProto_StringMetadata::set_has_perf_version() {
  _has_bits_[0] |= 0x00000004u;
}
inline void PerfDataProto_StringMetadata::clear_has_perf_version() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void PerfDataProto_StringMetadata::clear_perf_version() {
  if (perf_version_ != NULL) perf_version_->::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix::Clear();
  clear_has_perf_version();
}
inline const ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix& PerfDataProto_StringMetadata::perf_version() const {
  return perf_version_ != NULL ? *perf_version_ : *default_instance_->perf_version_;
}
inline ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* PerfDataProto_StringMetadata::mutable_perf_version() {
  set_has_perf_version();
  if (perf_version_ == NULL) perf_version_ = new ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix;
  return perf_version_;
}
inline ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* PerfDataProto_StringMetadata::release_perf_version() {
  clear_has_perf_version();
  ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* temp = perf_version_;
  perf_version_ = NULL;
  return temp;
}
inline void PerfDataProto_StringMetadata::set_allocated_perf_version(::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* perf_version) {
  delete perf_version_;
  perf_version_ = perf_version;
  if (perf_version) {
    set_has_perf_version();
  } else {
    clear_has_perf_version();
  }
}

// optional .quipper.PerfDataProto.StringMetadata.StringAndMd5sumPrefix architecture = 4;
inline bool PerfDataProto_StringMetadata::has_architecture() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void PerfDataProto_StringMetadata::set_has_architecture() {
  _has_bits_[0] |= 0x00000008u;
}
inline void PerfDataProto_StringMetadata::clear_has_architecture() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void PerfDataProto_StringMetadata::clear_architecture() {
  if (architecture_ != NULL) architecture_->::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix::Clear();
  clear_has_architecture();
}
inline const ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix& PerfDataProto_StringMetadata::architecture() const {
  return architecture_ != NULL ? *architecture_ : *default_instance_->architecture_;
}
inline ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* PerfDataProto_StringMetadata::mutable_architecture() {
  set_has_architecture();
  if (architecture_ == NULL) architecture_ = new ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix;
  return architecture_;
}
inline ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* PerfDataProto_StringMetadata::release_architecture() {
  clear_has_architecture();
  ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* temp = architecture_;
  architecture_ = NULL;
  return temp;
}
inline void PerfDataProto_StringMetadata::set_allocated_architecture(::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* architecture) {
  delete architecture_;
  architecture_ = architecture;
  if (architecture) {
    set_has_architecture();
  } else {
    clear_has_architecture();
  }
}

// optional .quipper.PerfDataProto.StringMetadata.StringAndMd5sumPrefix cpu_description = 5;
inline bool PerfDataProto_StringMetadata::has_cpu_description() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void PerfDataProto_StringMetadata::set_has_cpu_description() {
  _has_bits_[0] |= 0x00000010u;
}
inline void PerfDataProto_StringMetadata::clear_has_cpu_description() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void PerfDataProto_StringMetadata::clear_cpu_description() {
  if (cpu_description_ != NULL) cpu_description_->::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix::Clear();
  clear_has_cpu_description();
}
inline const ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix& PerfDataProto_StringMetadata::cpu_description() const {
  return cpu_description_ != NULL ? *cpu_description_ : *default_instance_->cpu_description_;
}
inline ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* PerfDataProto_StringMetadata::mutable_cpu_description() {
  set_has_cpu_description();
  if (cpu_description_ == NULL) cpu_description_ = new ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix;
  return cpu_description_;
}
inline ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* PerfDataProto_StringMetadata::release_cpu_description() {
  clear_has_cpu_description();
  ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* temp = cpu_description_;
  cpu_description_ = NULL;
  return temp;
}
inline void PerfDataProto_StringMetadata::set_allocated_cpu_description(::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* cpu_description) {
  delete cpu_description_;
  cpu_description_ = cpu_description;
  if (cpu_description) {
    set_has_cpu_description();
  } else {
    clear_has_cpu_description();
  }
}

// optional .quipper.PerfDataProto.StringMetadata.StringAndMd5sumPrefix cpu_id = 6;
inline bool PerfDataProto_StringMetadata::has_cpu_id() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void PerfDataProto_StringMetadata::set_has_cpu_id() {
  _has_bits_[0] |= 0x00000020u;
}
inline void PerfDataProto_StringMetadata::clear_has_cpu_id() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void PerfDataProto_StringMetadata::clear_cpu_id() {
  if (cpu_id_ != NULL) cpu_id_->::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix::Clear();
  clear_has_cpu_id();
}
inline const ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix& PerfDataProto_StringMetadata::cpu_id() const {
  return cpu_id_ != NULL ? *cpu_id_ : *default_instance_->cpu_id_;
}
inline ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* PerfDataProto_StringMetadata::mutable_cpu_id() {
  set_has_cpu_id();
  if (cpu_id_ == NULL) cpu_id_ = new ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix;
  return cpu_id_;
}
inline ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* PerfDataProto_StringMetadata::release_cpu_id() {
  clear_has_cpu_id();
  ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* temp = cpu_id_;
  cpu_id_ = NULL;
  return temp;
}
inline void PerfDataProto_StringMetadata::set_allocated_cpu_id(::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* cpu_id) {
  delete cpu_id_;
  cpu_id_ = cpu_id;
  if (cpu_id) {
    set_has_cpu_id();
  } else {
    clear_has_cpu_id();
  }
}

// repeated .quipper.PerfDataProto.StringMetadata.StringAndMd5sumPrefix perf_command_line_token = 7;
inline int PerfDataProto_StringMetadata::perf_command_line_token_size() const {
  return perf_command_line_token_.size();
}
inline void PerfDataProto_StringMetadata::clear_perf_command_line_token() {
  perf_command_line_token_.Clear();
}
inline const ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix& PerfDataProto_StringMetadata::perf_command_line_token(int index) const {
  return perf_command_line_token_.Get(index);
}
inline ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* PerfDataProto_StringMetadata::mutable_perf_command_line_token(int index) {
  return perf_command_line_token_.Mutable(index);
}
inline ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* PerfDataProto_StringMetadata::add_perf_command_line_token() {
  return perf_command_line_token_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix >&
PerfDataProto_StringMetadata::perf_command_line_token() const {
  return perf_command_line_token_;
}
inline ::google::protobuf::RepeatedPtrField< ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix >*
PerfDataProto_StringMetadata::mutable_perf_command_line_token() {
  return &perf_command_line_token_;
}

// optional .quipper.PerfDataProto.StringMetadata.StringAndMd5sumPrefix perf_command_line_whole = 8;
inline bool PerfDataProto_StringMetadata::has_perf_command_line_whole() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void PerfDataProto_StringMetadata::set_has_perf_command_line_whole() {
  _has_bits_[0] |= 0x00000080u;
}
inline void PerfDataProto_StringMetadata::clear_has_perf_command_line_whole() {
  _has_bits_[0] &= ~0x00000080u;
}
inline void PerfDataProto_StringMetadata::clear_perf_command_line_whole() {
  if (perf_command_line_whole_ != NULL) perf_command_line_whole_->::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix::Clear();
  clear_has_perf_command_line_whole();
}
inline const ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix& PerfDataProto_StringMetadata::perf_command_line_whole() const {
  return perf_command_line_whole_ != NULL ? *perf_command_line_whole_ : *default_instance_->perf_command_line_whole_;
}
inline ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* PerfDataProto_StringMetadata::mutable_perf_command_line_whole() {
  set_has_perf_command_line_whole();
  if (perf_command_line_whole_ == NULL) perf_command_line_whole_ = new ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix;
  return perf_command_line_whole_;
}
inline ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* PerfDataProto_StringMetadata::release_perf_command_line_whole() {
  clear_has_perf_command_line_whole();
  ::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* temp = perf_command_line_whole_;
  perf_command_line_whole_ = NULL;
  return temp;
}
inline void PerfDataProto_StringMetadata::set_allocated_perf_command_line_whole(::quipper::PerfDataProto_StringMetadata_StringAndMd5sumPrefix* perf_command_line_whole) {
  delete perf_command_line_whole_;
  perf_command_line_whole_ = perf_command_line_whole;
  if (perf_command_line_whole) {
    set_has_perf_command_line_whole();
  } else {
    clear_has_perf_command_line_whole();
  }
}

// -------------------------------------------------------------------

// PerfDataProto

// repeated .quipper.PerfDataProto.PerfFileAttr file_attrs = 1;
inline int PerfDataProto::file_attrs_size() const {
  return file_attrs_.size();
}
inline void PerfDataProto::clear_file_attrs() {
  file_attrs_.Clear();
}
inline const ::quipper::PerfDataProto_PerfFileAttr& PerfDataProto::file_attrs(int index) const {
  return file_attrs_.Get(index);
}
inline ::quipper::PerfDataProto_PerfFileAttr* PerfDataProto::mutable_file_attrs(int index) {
  return file_attrs_.Mutable(index);
}
inline ::quipper::PerfDataProto_PerfFileAttr* PerfDataProto::add_file_attrs() {
  return file_attrs_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::quipper::PerfDataProto_PerfFileAttr >&
PerfDataProto::file_attrs() const {
  return file_attrs_;
}
inline ::google::protobuf::RepeatedPtrField< ::quipper::PerfDataProto_PerfFileAttr >*
PerfDataProto::mutable_file_attrs() {
  return &file_attrs_;
}

// repeated .quipper.PerfDataProto.PerfEvent events = 2;
inline int PerfDataProto::events_size() const {
  return events_.size();
}
inline void PerfDataProto::clear_events() {
  events_.Clear();
}
inline const ::quipper::PerfDataProto_PerfEvent& PerfDataProto::events(int index) const {
  return events_.Get(index);
}
inline ::quipper::PerfDataProto_PerfEvent* PerfDataProto::mutable_events(int index) {
  return events_.Mutable(index);
}
inline ::quipper::PerfDataProto_PerfEvent* PerfDataProto::add_events() {
  return events_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::quipper::PerfDataProto_PerfEvent >&
PerfDataProto::events() const {
  return events_;
}
inline ::google::protobuf::RepeatedPtrField< ::quipper::PerfDataProto_PerfEvent >*
PerfDataProto::mutable_events() {
  return &events_;
}

// repeated .quipper.PerfDataProto.PerfEventType event_types = 10;
inline int PerfDataProto::event_types_size() const {
  return event_types_.size();
}
inline void PerfDataProto::clear_event_types() {
  event_types_.Clear();
}
inline const ::quipper::PerfDataProto_PerfEventType& PerfDataProto::event_types(int index) const {
  return event_types_.Get(index);
}
inline ::quipper::PerfDataProto_PerfEventType* PerfDataProto::mutable_event_types(int index) {
  return event_types_.Mutable(index);
}
inline ::quipper::PerfDataProto_PerfEventType* PerfDataProto::add_event_types() {
  return event_types_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::quipper::PerfDataProto_PerfEventType >&
PerfDataProto::event_types() const {
  return event_types_;
}
inline ::google::protobuf::RepeatedPtrField< ::quipper::PerfDataProto_PerfEventType >*
PerfDataProto::mutable_event_types() {
  return &event_types_;
}

// optional uint64 timestamp_sec = 3;
inline bool PerfDataProto::has_timestamp_sec() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void PerfDataProto::set_has_timestamp_sec() {
  _has_bits_[0] |= 0x00000008u;
}
inline void PerfDataProto::clear_has_timestamp_sec() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void PerfDataProto::clear_timestamp_sec() {
  timestamp_sec_ = GOOGLE_ULONGLONG(0);
  clear_has_timestamp_sec();
}
inline ::google::protobuf::uint64 PerfDataProto::timestamp_sec() const {
  return timestamp_sec_;
}
inline void PerfDataProto::set_timestamp_sec(::google::protobuf::uint64 value) {
  set_has_timestamp_sec();
  timestamp_sec_ = value;
}

// optional .quipper.PerfDataProto.PerfEventStats stats = 4;
inline bool PerfDataProto::has_stats() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void PerfDataProto::set_has_stats() {
  _has_bits_[0] |= 0x00000010u;
}
inline void PerfDataProto::clear_has_stats() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void PerfDataProto::clear_stats() {
  if (stats_ != NULL) stats_->::quipper::PerfDataProto_PerfEventStats::Clear();
  clear_has_stats();
}
inline const ::quipper::PerfDataProto_PerfEventStats& PerfDataProto::stats() const {
  return stats_ != NULL ? *stats_ : *default_instance_->stats_;
}
inline ::quipper::PerfDataProto_PerfEventStats* PerfDataProto::mutable_stats() {
  set_has_stats();
  if (stats_ == NULL) stats_ = new ::quipper::PerfDataProto_PerfEventStats;
  return stats_;
}
inline ::quipper::PerfDataProto_PerfEventStats* PerfDataProto::release_stats() {
  clear_has_stats();
  ::quipper::PerfDataProto_PerfEventStats* temp = stats_;
  stats_ = NULL;
  return temp;
}
inline void PerfDataProto::set_allocated_stats(::quipper::PerfDataProto_PerfEventStats* stats) {
  delete stats_;
  stats_ = stats;
  if (stats) {
    set_has_stats();
  } else {
    clear_has_stats();
  }
}

// repeated uint64 metadata_mask = 5;
inline int PerfDataProto::metadata_mask_size() const {
  return metadata_mask_.size();
}
inline void PerfDataProto::clear_metadata_mask() {
  metadata_mask_.Clear();
}
inline ::google::protobuf::uint64 PerfDataProto::metadata_mask(int index) const {
  return metadata_mask_.Get(index);
}
inline void PerfDataProto::set_metadata_mask(int index, ::google::protobuf::uint64 value) {
  metadata_mask_.Set(index, value);
}
inline void PerfDataProto::add_metadata_mask(::google::protobuf::uint64 value) {
  metadata_mask_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
PerfDataProto::metadata_mask() const {
  return metadata_mask_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
PerfDataProto::mutable_metadata_mask() {
  return &metadata_mask_;
}

// optional .quipper.PerfDataProto.PerfTracingMetadata tracing_data = 14;
inline bool PerfDataProto::has_tracing_data() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void PerfDataProto::set_has_tracing_data() {
  _has_bits_[0] |= 0x00000040u;
}
inline void PerfDataProto::clear_has_tracing_data() {
  _has_bits_[0] &= ~0x00000040u;
}
inline void PerfDataProto::clear_tracing_data() {
  if (tracing_data_ != NULL) tracing_data_->::quipper::PerfDataProto_PerfTracingMetadata::Clear();
  clear_has_tracing_data();
}
inline const ::quipper::PerfDataProto_PerfTracingMetadata& PerfDataProto::tracing_data() const {
  return tracing_data_ != NULL ? *tracing_data_ : *default_instance_->tracing_data_;
}
inline ::quipper::PerfDataProto_PerfTracingMetadata* PerfDataProto::mutable_tracing_data() {
  set_has_tracing_data();
  if (tracing_data_ == NULL) tracing_data_ = new ::quipper::PerfDataProto_PerfTracingMetadata;
  return tracing_data_;
}
inline ::quipper::PerfDataProto_PerfTracingMetadata* PerfDataProto::release_tracing_data() {
  clear_has_tracing_data();
  ::quipper::PerfDataProto_PerfTracingMetadata* temp = tracing_data_;
  tracing_data_ = NULL;
  return temp;
}
inline void PerfDataProto::set_allocated_tracing_data(::quipper::PerfDataProto_PerfTracingMetadata* tracing_data) {
  delete tracing_data_;
  tracing_data_ = tracing_data;
  if (tracing_data) {
    set_has_tracing_data();
  } else {
    clear_has_tracing_data();
  }
}

// repeated .quipper.PerfDataProto.PerfBuildID build_ids = 7;
inline int PerfDataProto::build_ids_size() const {
  return build_ids_.size();
}
inline void PerfDataProto::clear_build_ids() {
  build_ids_.Clear();
}
inline const ::quipper::PerfDataProto_PerfBuildID& PerfDataProto::build_ids(int index) const {
  return build_ids_.Get(index);
}
inline ::quipper::PerfDataProto_PerfBuildID* PerfDataProto::mutable_build_ids(int index) {
  return build_ids_.Mutable(index);
}
inline ::quipper::PerfDataProto_PerfBuildID* PerfDataProto::add_build_ids() {
  return build_ids_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::quipper::PerfDataProto_PerfBuildID >&
PerfDataProto::build_ids() const {
  return build_ids_;
}
inline ::google::protobuf::RepeatedPtrField< ::quipper::PerfDataProto_PerfBuildID >*
PerfDataProto::mutable_build_ids() {
  return &build_ids_;
}

// repeated .quipper.PerfDataProto.PerfUint32Metadata uint32_metadata = 8;
inline int PerfDataProto::uint32_metadata_size() const {
  return uint32_metadata_.size();
}
inline void PerfDataProto::clear_uint32_metadata() {
  uint32_metadata_.Clear();
}
inline const ::quipper::PerfDataProto_PerfUint32Metadata& PerfDataProto::uint32_metadata(int index) const {
  return uint32_metadata_.Get(index);
}
inline ::quipper::PerfDataProto_PerfUint32Metadata* PerfDataProto::mutable_uint32_metadata(int index) {
  return uint32_metadata_.Mutable(index);
}
inline ::quipper::PerfDataProto_PerfUint32Metadata* PerfDataProto::add_uint32_metadata() {
  return uint32_metadata_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::quipper::PerfDataProto_PerfUint32Metadata >&
PerfDataProto::uint32_metadata() const {
  return uint32_metadata_;
}
inline ::google::protobuf::RepeatedPtrField< ::quipper::PerfDataProto_PerfUint32Metadata >*
PerfDataProto::mutable_uint32_metadata() {
  return &uint32_metadata_;
}

// repeated .quipper.PerfDataProto.PerfUint64Metadata uint64_metadata = 9;
inline int PerfDataProto::uint64_metadata_size() const {
  return uint64_metadata_.size();
}
inline void PerfDataProto::clear_uint64_metadata() {
  uint64_metadata_.Clear();
}
inline const ::quipper::PerfDataProto_PerfUint64Metadata& PerfDataProto::uint64_metadata(int index) const {
  return uint64_metadata_.Get(index);
}
inline ::quipper::PerfDataProto_PerfUint64Metadata* PerfDataProto::mutable_uint64_metadata(int index) {
  return uint64_metadata_.Mutable(index);
}
inline ::quipper::PerfDataProto_PerfUint64Metadata* PerfDataProto::add_uint64_metadata() {
  return uint64_metadata_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::quipper::PerfDataProto_PerfUint64Metadata >&
PerfDataProto::uint64_metadata() const {
  return uint64_metadata_;
}
inline ::google::protobuf::RepeatedPtrField< ::quipper::PerfDataProto_PerfUint64Metadata >*
PerfDataProto::mutable_uint64_metadata() {
  return &uint64_metadata_;
}

// optional .quipper.PerfDataProto.PerfCPUTopologyMetadata cpu_topology = 11;
inline bool PerfDataProto::has_cpu_topology() const {
  return (_has_bits_[0] & 0x00000400u) != 0;
}
inline void PerfDataProto::set_has_cpu_topology() {
  _has_bits_[0] |= 0x00000400u;
}
inline void PerfDataProto::clear_has_cpu_topology() {
  _has_bits_[0] &= ~0x00000400u;
}
inline void PerfDataProto::clear_cpu_topology() {
  if (cpu_topology_ != NULL) cpu_topology_->::quipper::PerfDataProto_PerfCPUTopologyMetadata::Clear();
  clear_has_cpu_topology();
}
inline const ::quipper::PerfDataProto_PerfCPUTopologyMetadata& PerfDataProto::cpu_topology() const {
  return cpu_topology_ != NULL ? *cpu_topology_ : *default_instance_->cpu_topology_;
}
inline ::quipper::PerfDataProto_PerfCPUTopologyMetadata* PerfDataProto::mutable_cpu_topology() {
  set_has_cpu_topology();
  if (cpu_topology_ == NULL) cpu_topology_ = new ::quipper::PerfDataProto_PerfCPUTopologyMetadata;
  return cpu_topology_;
}
inline ::quipper::PerfDataProto_PerfCPUTopologyMetadata* PerfDataProto::release_cpu_topology() {
  clear_has_cpu_topology();
  ::quipper::PerfDataProto_PerfCPUTopologyMetadata* temp = cpu_topology_;
  cpu_topology_ = NULL;
  return temp;
}
inline void PerfDataProto::set_allocated_cpu_topology(::quipper::PerfDataProto_PerfCPUTopologyMetadata* cpu_topology) {
  delete cpu_topology_;
  cpu_topology_ = cpu_topology;
  if (cpu_topology) {
    set_has_cpu_topology();
  } else {
    clear_has_cpu_topology();
  }
}

// repeated .quipper.PerfDataProto.PerfNodeTopologyMetadata numa_topology = 12;
inline int PerfDataProto::numa_topology_size() const {
  return numa_topology_.size();
}
inline void PerfDataProto::clear_numa_topology() {
  numa_topology_.Clear();
}
inline const ::quipper::PerfDataProto_PerfNodeTopologyMetadata& PerfDataProto::numa_topology(int index) const {
  return numa_topology_.Get(index);
}
inline ::quipper::PerfDataProto_PerfNodeTopologyMetadata* PerfDataProto::mutable_numa_topology(int index) {
  return numa_topology_.Mutable(index);
}
inline ::quipper::PerfDataProto_PerfNodeTopologyMetadata* PerfDataProto::add_numa_topology() {
  return numa_topology_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::quipper::PerfDataProto_PerfNodeTopologyMetadata >&
PerfDataProto::numa_topology() const {
  return numa_topology_;
}
inline ::google::protobuf::RepeatedPtrField< ::quipper::PerfDataProto_PerfNodeTopologyMetadata >*
PerfDataProto::mutable_numa_topology() {
  return &numa_topology_;
}

// optional .quipper.PerfDataProto.StringMetadata string_metadata = 13;
inline bool PerfDataProto::has_string_metadata() const {
  return (_has_bits_[0] & 0x00001000u) != 0;
}
inline void PerfDataProto::set_has_string_metadata() {
  _has_bits_[0] |= 0x00001000u;
}
inline void PerfDataProto::clear_has_string_metadata() {
  _has_bits_[0] &= ~0x00001000u;
}
inline void PerfDataProto::clear_string_metadata() {
  if (string_metadata_ != NULL) string_metadata_->::quipper::PerfDataProto_StringMetadata::Clear();
  clear_has_string_metadata();
}
inline const ::quipper::PerfDataProto_StringMetadata& PerfDataProto::string_metadata() const {
  return string_metadata_ != NULL ? *string_metadata_ : *default_instance_->string_metadata_;
}
inline ::quipper::PerfDataProto_StringMetadata* PerfDataProto::mutable_string_metadata() {
  set_has_string_metadata();
  if (string_metadata_ == NULL) string_metadata_ = new ::quipper::PerfDataProto_StringMetadata;
  return string_metadata_;
}
inline ::quipper::PerfDataProto_StringMetadata* PerfDataProto::release_string_metadata() {
  clear_has_string_metadata();
  ::quipper::PerfDataProto_StringMetadata* temp = string_metadata_;
  string_metadata_ = NULL;
  return temp;
}
inline void PerfDataProto::set_allocated_string_metadata(::quipper::PerfDataProto_StringMetadata* string_metadata) {
  delete string_metadata_;
  string_metadata_ = string_metadata;
  if (string_metadata) {
    set_has_string_metadata();
  } else {
    clear_has_string_metadata();
  }
}


// @@protoc_insertion_point(namespace_scope)

}  // namespace quipper

#ifndef SWIG
namespace google {
namespace protobuf {


}  // namespace google
}  // namespace protobuf
#endif  // SWIG

// @@protoc_insertion_point(global_scope)

#endif  // PROTOBUF_perf_5fdata_2eproto__INCLUDED
