// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: tensorflow/core/profiler/protobuf/pod_viewer.proto

#ifndef GOOGLE_PROTOBUF_INCLUDED_tensorflow_2fcore_2fprofiler_2fprotobuf_2fpod_5fviewer_2eproto
#define GOOGLE_PROTOBUF_INCLUDED_tensorflow_2fcore_2fprofiler_2fprotobuf_2fpod_5fviewer_2eproto

#include <limits>
#include <string>

#include <google/protobuf/port_def.inc>
#if PROTOBUF_VERSION < 3019000
#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 3019004 < 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/port_undef.inc>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/arena.h>
#include <google/protobuf/arenastring.h>
#include <google/protobuf/generated_message_table_driven.h>
#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/metadata_lite.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/message.h>
#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
#include <google/protobuf/extension_set.h>  // IWYU pragma: export
#include <google/protobuf/map.h>  // IWYU pragma: export
#include <google/protobuf/map_entry.h>
#include <google/protobuf/map_field_inl.h>
#include <google/protobuf/unknown_field_set.h>
#include "tensorflow/core/profiler/protobuf/diagnostics.pb.h"
#include "tensorflow/core/profiler/protobuf/pod_stats.pb.h"
// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>
#define PROTOBUF_INTERNAL_EXPORT_tensorflow_2fcore_2fprofiler_2fprotobuf_2fpod_5fviewer_2eproto
PROTOBUF_NAMESPACE_OPEN
namespace internal {
class AnyMetadata;
}  // namespace internal
PROTOBUF_NAMESPACE_CLOSE

// Internal implementation detail -- do not use these members.
struct TableStruct_tensorflow_2fcore_2fprofiler_2fprotobuf_2fpod_5fviewer_2eproto {
  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[]
    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
  static const ::PROTOBUF_NAMESPACE_ID::internal::AuxiliaryParseTableField aux[]
    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[10]
    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
  static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[];
  static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[];
  static const uint32_t offsets[];
};
extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_tensorflow_2fcore_2fprofiler_2fprotobuf_2fpod_5fviewer_2eproto;
namespace tensorflow {
namespace profiler {
class AllReduceOpInfo;
struct AllReduceOpInfoDefaultTypeInternal;
extern AllReduceOpInfoDefaultTypeInternal _AllReduceOpInfo_default_instance_;
class ChannelInfo;
struct ChannelInfoDefaultTypeInternal;
extern ChannelInfoDefaultTypeInternal _ChannelInfo_default_instance_;
class PodStatsMap;
struct PodStatsMapDefaultTypeInternal;
extern PodStatsMapDefaultTypeInternal _PodStatsMap_default_instance_;
class PodStatsMap_CoreIdToReplicaIdMapEntry_DoNotUse;
struct PodStatsMap_CoreIdToReplicaIdMapEntry_DoNotUseDefaultTypeInternal;
extern PodStatsMap_CoreIdToReplicaIdMapEntry_DoNotUseDefaultTypeInternal _PodStatsMap_CoreIdToReplicaIdMapEntry_DoNotUse_default_instance_;
class PodStatsMap_PodStatsPerCoreEntry_DoNotUse;
struct PodStatsMap_PodStatsPerCoreEntry_DoNotUseDefaultTypeInternal;
extern PodStatsMap_PodStatsPerCoreEntry_DoNotUseDefaultTypeInternal _PodStatsMap_PodStatsPerCoreEntry_DoNotUse_default_instance_;
class PodStatsSequence;
struct PodStatsSequenceDefaultTypeInternal;
extern PodStatsSequenceDefaultTypeInternal _PodStatsSequence_default_instance_;
class PodViewerDatabase;
struct PodViewerDatabaseDefaultTypeInternal;
extern PodViewerDatabaseDefaultTypeInternal _PodViewerDatabase_default_instance_;
class PodViewerSummary;
struct PodViewerSummaryDefaultTypeInternal;
extern PodViewerSummaryDefaultTypeInternal _PodViewerSummary_default_instance_;
class PodViewerTopology;
struct PodViewerTopologyDefaultTypeInternal;
extern PodViewerTopologyDefaultTypeInternal _PodViewerTopology_default_instance_;
class ReplicaGroup;
struct ReplicaGroupDefaultTypeInternal;
extern ReplicaGroupDefaultTypeInternal _ReplicaGroup_default_instance_;
}  // namespace profiler
}  // namespace tensorflow
PROTOBUF_NAMESPACE_OPEN
template<> ::tensorflow::profiler::AllReduceOpInfo* Arena::CreateMaybeMessage<::tensorflow::profiler::AllReduceOpInfo>(Arena*);
template<> ::tensorflow::profiler::ChannelInfo* Arena::CreateMaybeMessage<::tensorflow::profiler::ChannelInfo>(Arena*);
template<> ::tensorflow::profiler::PodStatsMap* Arena::CreateMaybeMessage<::tensorflow::profiler::PodStatsMap>(Arena*);
template<> ::tensorflow::profiler::PodStatsMap_CoreIdToReplicaIdMapEntry_DoNotUse* Arena::CreateMaybeMessage<::tensorflow::profiler::PodStatsMap_CoreIdToReplicaIdMapEntry_DoNotUse>(Arena*);
template<> ::tensorflow::profiler::PodStatsMap_PodStatsPerCoreEntry_DoNotUse* Arena::CreateMaybeMessage<::tensorflow::profiler::PodStatsMap_PodStatsPerCoreEntry_DoNotUse>(Arena*);
template<> ::tensorflow::profiler::PodStatsSequence* Arena::CreateMaybeMessage<::tensorflow::profiler::PodStatsSequence>(Arena*);
template<> ::tensorflow::profiler::PodViewerDatabase* Arena::CreateMaybeMessage<::tensorflow::profiler::PodViewerDatabase>(Arena*);
template<> ::tensorflow::profiler::PodViewerSummary* Arena::CreateMaybeMessage<::tensorflow::profiler::PodViewerSummary>(Arena*);
template<> ::tensorflow::profiler::PodViewerTopology* Arena::CreateMaybeMessage<::tensorflow::profiler::PodViewerTopology>(Arena*);
template<> ::tensorflow::profiler::ReplicaGroup* Arena::CreateMaybeMessage<::tensorflow::profiler::ReplicaGroup>(Arena*);
PROTOBUF_NAMESPACE_CLOSE
namespace tensorflow {
namespace profiler {

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

class ReplicaGroup final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:tensorflow.profiler.ReplicaGroup) */ {
 public:
  inline ReplicaGroup() : ReplicaGroup(nullptr) {}
  ~ReplicaGroup() override;
  explicit constexpr ReplicaGroup(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  ReplicaGroup(const ReplicaGroup& from);
  ReplicaGroup(ReplicaGroup&& from) noexcept
    : ReplicaGroup() {
    *this = ::std::move(from);
  }

  inline ReplicaGroup& operator=(const ReplicaGroup& from) {
    CopyFrom(from);
    return *this;
  }
  inline ReplicaGroup& operator=(ReplicaGroup&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const ReplicaGroup& default_instance() {
    return *internal_default_instance();
  }
  static inline const ReplicaGroup* internal_default_instance() {
    return reinterpret_cast<const ReplicaGroup*>(
               &_ReplicaGroup_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    0;

  friend void swap(ReplicaGroup& a, ReplicaGroup& b) {
    a.Swap(&b);
  }
  inline void Swap(ReplicaGroup* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ReplicaGroup* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  ReplicaGroup* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<ReplicaGroup>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const ReplicaGroup& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const ReplicaGroup& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ReplicaGroup* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "tensorflow.profiler.ReplicaGroup";
  }
  protected:
  explicit ReplicaGroup(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kReplicaIdsFieldNumber = 1,
  };
  // repeated int64 replica_ids = 1;
  int replica_ids_size() const;
  private:
  int _internal_replica_ids_size() const;
  public:
  void clear_replica_ids();
  private:
  int64_t _internal_replica_ids(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int64_t >&
      _internal_replica_ids() const;
  void _internal_add_replica_ids(int64_t value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int64_t >*
      _internal_mutable_replica_ids();
  public:
  int64_t replica_ids(int index) const;
  void set_replica_ids(int index, int64_t value);
  void add_replica_ids(int64_t value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int64_t >&
      replica_ids() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int64_t >*
      mutable_replica_ids();

  // @@protoc_insertion_point(class_scope:tensorflow.profiler.ReplicaGroup)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int64_t > replica_ids_;
  mutable std::atomic<int> _replica_ids_cached_byte_size_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_tensorflow_2fcore_2fprofiler_2fprotobuf_2fpod_5fviewer_2eproto;
};
// -------------------------------------------------------------------

class AllReduceOpInfo final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:tensorflow.profiler.AllReduceOpInfo) */ {
 public:
  inline AllReduceOpInfo() : AllReduceOpInfo(nullptr) {}
  ~AllReduceOpInfo() override;
  explicit constexpr AllReduceOpInfo(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  AllReduceOpInfo(const AllReduceOpInfo& from);
  AllReduceOpInfo(AllReduceOpInfo&& from) noexcept
    : AllReduceOpInfo() {
    *this = ::std::move(from);
  }

  inline AllReduceOpInfo& operator=(const AllReduceOpInfo& from) {
    CopyFrom(from);
    return *this;
  }
  inline AllReduceOpInfo& operator=(AllReduceOpInfo&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const AllReduceOpInfo& default_instance() {
    return *internal_default_instance();
  }
  static inline const AllReduceOpInfo* internal_default_instance() {
    return reinterpret_cast<const AllReduceOpInfo*>(
               &_AllReduceOpInfo_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    1;

  friend void swap(AllReduceOpInfo& a, AllReduceOpInfo& b) {
    a.Swap(&b);
  }
  inline void Swap(AllReduceOpInfo* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(AllReduceOpInfo* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  AllReduceOpInfo* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<AllReduceOpInfo>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const AllReduceOpInfo& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const AllReduceOpInfo& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(AllReduceOpInfo* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "tensorflow.profiler.AllReduceOpInfo";
  }
  protected:
  explicit AllReduceOpInfo(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kReplicaGroupsFieldNumber = 5,
    kNameFieldNumber = 1,
    kDescriptionFieldNumber = 6,
    kDurationUsFieldNumber = 3,
    kDataSizeFieldNumber = 4,
    kOccurrencesFieldNumber = 2,
  };
  // repeated .tensorflow.profiler.ReplicaGroup replica_groups = 5;
  int replica_groups_size() const;
  private:
  int _internal_replica_groups_size() const;
  public:
  void clear_replica_groups();
  ::tensorflow::profiler::ReplicaGroup* mutable_replica_groups(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::tensorflow::profiler::ReplicaGroup >*
      mutable_replica_groups();
  private:
  const ::tensorflow::profiler::ReplicaGroup& _internal_replica_groups(int index) const;
  ::tensorflow::profiler::ReplicaGroup* _internal_add_replica_groups();
  public:
  const ::tensorflow::profiler::ReplicaGroup& replica_groups(int index) const;
  ::tensorflow::profiler::ReplicaGroup* add_replica_groups();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::tensorflow::profiler::ReplicaGroup >&
      replica_groups() const;

  // string name = 1;
  void clear_name();
  const std::string& name() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_name(ArgT0&& arg0, ArgT... args);
  std::string* mutable_name();
  PROTOBUF_NODISCARD std::string* release_name();
  void set_allocated_name(std::string* name);
  private:
  const std::string& _internal_name() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_name(const std::string& value);
  std::string* _internal_mutable_name();
  public:

  // string description = 6;
  void clear_description();
  const std::string& description() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_description(ArgT0&& arg0, ArgT... args);
  std::string* mutable_description();
  PROTOBUF_NODISCARD std::string* release_description();
  void set_allocated_description(std::string* description);
  private:
  const std::string& _internal_description() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_description(const std::string& value);
  std::string* _internal_mutable_description();
  public:

  // double duration_us = 3;
  void clear_duration_us();
  double duration_us() const;
  void set_duration_us(double value);
  private:
  double _internal_duration_us() const;
  void _internal_set_duration_us(double value);
  public:

  // uint64 data_size = 4;
  void clear_data_size();
  uint64_t data_size() const;
  void set_data_size(uint64_t value);
  private:
  uint64_t _internal_data_size() const;
  void _internal_set_data_size(uint64_t value);
  public:

  // uint32 occurrences = 2;
  void clear_occurrences();
  uint32_t occurrences() const;
  void set_occurrences(uint32_t value);
  private:
  uint32_t _internal_occurrences() const;
  void _internal_set_occurrences(uint32_t value);
  public:

  // @@protoc_insertion_point(class_scope:tensorflow.profiler.AllReduceOpInfo)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::tensorflow::profiler::ReplicaGroup > replica_groups_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr description_;
  double duration_us_;
  uint64_t data_size_;
  uint32_t occurrences_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_tensorflow_2fcore_2fprofiler_2fprotobuf_2fpod_5fviewer_2eproto;
};
// -------------------------------------------------------------------

class PodStatsMap_PodStatsPerCoreEntry_DoNotUse : public ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<PodStatsMap_PodStatsPerCoreEntry_DoNotUse, 
    uint32_t, ::tensorflow::profiler::PodStatsRecord,
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_UINT32,
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_MESSAGE> {
public:
  typedef ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<PodStatsMap_PodStatsPerCoreEntry_DoNotUse, 
    uint32_t, ::tensorflow::profiler::PodStatsRecord,
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_UINT32,
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_MESSAGE> SuperType;
  PodStatsMap_PodStatsPerCoreEntry_DoNotUse();
  explicit constexpr PodStatsMap_PodStatsPerCoreEntry_DoNotUse(
      ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
  explicit PodStatsMap_PodStatsPerCoreEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  void MergeFrom(const PodStatsMap_PodStatsPerCoreEntry_DoNotUse& other);
  static const PodStatsMap_PodStatsPerCoreEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const PodStatsMap_PodStatsPerCoreEntry_DoNotUse*>(&_PodStatsMap_PodStatsPerCoreEntry_DoNotUse_default_instance_); }
  static bool ValidateKey(void*) { return true; }
  static bool ValidateValue(void*) { return true; }
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
};

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

class PodStatsMap_CoreIdToReplicaIdMapEntry_DoNotUse : public ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<PodStatsMap_CoreIdToReplicaIdMapEntry_DoNotUse, 
    uint32_t, uint32_t,
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_UINT32,
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_UINT32> {
public:
  typedef ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<PodStatsMap_CoreIdToReplicaIdMapEntry_DoNotUse, 
    uint32_t, uint32_t,
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_UINT32,
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_UINT32> SuperType;
  PodStatsMap_CoreIdToReplicaIdMapEntry_DoNotUse();
  explicit constexpr PodStatsMap_CoreIdToReplicaIdMapEntry_DoNotUse(
      ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
  explicit PodStatsMap_CoreIdToReplicaIdMapEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  void MergeFrom(const PodStatsMap_CoreIdToReplicaIdMapEntry_DoNotUse& other);
  static const PodStatsMap_CoreIdToReplicaIdMapEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const PodStatsMap_CoreIdToReplicaIdMapEntry_DoNotUse*>(&_PodStatsMap_CoreIdToReplicaIdMapEntry_DoNotUse_default_instance_); }
  static bool ValidateKey(void*) { return true; }
  static bool ValidateValue(void*) { return true; }
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
};

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

class PodStatsMap final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:tensorflow.profiler.PodStatsMap) */ {
 public:
  inline PodStatsMap() : PodStatsMap(nullptr) {}
  ~PodStatsMap() override;
  explicit constexpr PodStatsMap(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  PodStatsMap(const PodStatsMap& from);
  PodStatsMap(PodStatsMap&& from) noexcept
    : PodStatsMap() {
    *this = ::std::move(from);
  }

  inline PodStatsMap& operator=(const PodStatsMap& from) {
    CopyFrom(from);
    return *this;
  }
  inline PodStatsMap& operator=(PodStatsMap&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const PodStatsMap& default_instance() {
    return *internal_default_instance();
  }
  static inline const PodStatsMap* internal_default_instance() {
    return reinterpret_cast<const PodStatsMap*>(
               &_PodStatsMap_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    4;

  friend void swap(PodStatsMap& a, PodStatsMap& b) {
    a.Swap(&b);
  }
  inline void Swap(PodStatsMap* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PodStatsMap* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  PodStatsMap* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<PodStatsMap>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const PodStatsMap& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const PodStatsMap& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(PodStatsMap* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "tensorflow.profiler.PodStatsMap";
  }
  protected:
  explicit PodStatsMap(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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


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

  enum : int {
    kPodStatsPerCoreFieldNumber = 2,
    kChannelDbFieldNumber = 3,
    kCoreIdToReplicaIdMapFieldNumber = 4,
    kAllReduceOpDbFieldNumber = 5,
    kStepNumFieldNumber = 1,
  };
  // map<uint32, .tensorflow.profiler.PodStatsRecord> pod_stats_per_core = 2;
  int pod_stats_per_core_size() const;
  private:
  int _internal_pod_stats_per_core_size() const;
  public:
  void clear_pod_stats_per_core();
  private:
  const ::PROTOBUF_NAMESPACE_ID::Map< uint32_t, ::tensorflow::profiler::PodStatsRecord >&
      _internal_pod_stats_per_core() const;
  ::PROTOBUF_NAMESPACE_ID::Map< uint32_t, ::tensorflow::profiler::PodStatsRecord >*
      _internal_mutable_pod_stats_per_core();
  public:
  const ::PROTOBUF_NAMESPACE_ID::Map< uint32_t, ::tensorflow::profiler::PodStatsRecord >&
      pod_stats_per_core() const;
  ::PROTOBUF_NAMESPACE_ID::Map< uint32_t, ::tensorflow::profiler::PodStatsRecord >*
      mutable_pod_stats_per_core();

  // repeated .tensorflow.profiler.ChannelInfo channel_db = 3;
  int channel_db_size() const;
  private:
  int _internal_channel_db_size() const;
  public:
  void clear_channel_db();
  ::tensorflow::profiler::ChannelInfo* mutable_channel_db(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::tensorflow::profiler::ChannelInfo >*
      mutable_channel_db();
  private:
  const ::tensorflow::profiler::ChannelInfo& _internal_channel_db(int index) const;
  ::tensorflow::profiler::ChannelInfo* _internal_add_channel_db();
  public:
  const ::tensorflow::profiler::ChannelInfo& channel_db(int index) const;
  ::tensorflow::profiler::ChannelInfo* add_channel_db();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::tensorflow::profiler::ChannelInfo >&
      channel_db() const;

  // map<uint32, uint32> core_id_to_replica_id_map = 4;
  int core_id_to_replica_id_map_size() const;
  private:
  int _internal_core_id_to_replica_id_map_size() const;
  public:
  void clear_core_id_to_replica_id_map();
  private:
  const ::PROTOBUF_NAMESPACE_ID::Map< uint32_t, uint32_t >&
      _internal_core_id_to_replica_id_map() const;
  ::PROTOBUF_NAMESPACE_ID::Map< uint32_t, uint32_t >*
      _internal_mutable_core_id_to_replica_id_map();
  public:
  const ::PROTOBUF_NAMESPACE_ID::Map< uint32_t, uint32_t >&
      core_id_to_replica_id_map() const;
  ::PROTOBUF_NAMESPACE_ID::Map< uint32_t, uint32_t >*
      mutable_core_id_to_replica_id_map();

  // repeated .tensorflow.profiler.AllReduceOpInfo all_reduce_op_db = 5;
  int all_reduce_op_db_size() const;
  private:
  int _internal_all_reduce_op_db_size() const;
  public:
  void clear_all_reduce_op_db();
  ::tensorflow::profiler::AllReduceOpInfo* mutable_all_reduce_op_db(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::tensorflow::profiler::AllReduceOpInfo >*
      mutable_all_reduce_op_db();
  private:
  const ::tensorflow::profiler::AllReduceOpInfo& _internal_all_reduce_op_db(int index) const;
  ::tensorflow::profiler::AllReduceOpInfo* _internal_add_all_reduce_op_db();
  public:
  const ::tensorflow::profiler::AllReduceOpInfo& all_reduce_op_db(int index) const;
  ::tensorflow::profiler::AllReduceOpInfo* add_all_reduce_op_db();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::tensorflow::profiler::AllReduceOpInfo >&
      all_reduce_op_db() const;

  // uint32 step_num = 1;
  void clear_step_num();
  uint32_t step_num() const;
  void set_step_num(uint32_t value);
  private:
  uint32_t _internal_step_num() const;
  void _internal_set_step_num(uint32_t value);
  public:

  // @@protoc_insertion_point(class_scope:tensorflow.profiler.PodStatsMap)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::MapField<
      PodStatsMap_PodStatsPerCoreEntry_DoNotUse,
      uint32_t, ::tensorflow::profiler::PodStatsRecord,
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_UINT32,
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_MESSAGE> pod_stats_per_core_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::tensorflow::profiler::ChannelInfo > channel_db_;
  ::PROTOBUF_NAMESPACE_ID::internal::MapField<
      PodStatsMap_CoreIdToReplicaIdMapEntry_DoNotUse,
      uint32_t, uint32_t,
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_UINT32,
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_UINT32> core_id_to_replica_id_map_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::tensorflow::profiler::AllReduceOpInfo > all_reduce_op_db_;
  uint32_t step_num_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_tensorflow_2fcore_2fprofiler_2fprotobuf_2fpod_5fviewer_2eproto;
};
// -------------------------------------------------------------------

class PodStatsSequence final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:tensorflow.profiler.PodStatsSequence) */ {
 public:
  inline PodStatsSequence() : PodStatsSequence(nullptr) {}
  ~PodStatsSequence() override;
  explicit constexpr PodStatsSequence(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  PodStatsSequence(const PodStatsSequence& from);
  PodStatsSequence(PodStatsSequence&& from) noexcept
    : PodStatsSequence() {
    *this = ::std::move(from);
  }

  inline PodStatsSequence& operator=(const PodStatsSequence& from) {
    CopyFrom(from);
    return *this;
  }
  inline PodStatsSequence& operator=(PodStatsSequence&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const PodStatsSequence& default_instance() {
    return *internal_default_instance();
  }
  static inline const PodStatsSequence* internal_default_instance() {
    return reinterpret_cast<const PodStatsSequence*>(
               &_PodStatsSequence_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    5;

  friend void swap(PodStatsSequence& a, PodStatsSequence& b) {
    a.Swap(&b);
  }
  inline void Swap(PodStatsSequence* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PodStatsSequence* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  PodStatsSequence* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<PodStatsSequence>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const PodStatsSequence& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const PodStatsSequence& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(PodStatsSequence* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "tensorflow.profiler.PodStatsSequence";
  }
  protected:
  explicit PodStatsSequence(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kPodStatsMapFieldNumber = 1,
  };
  // repeated .tensorflow.profiler.PodStatsMap pod_stats_map = 1;
  int pod_stats_map_size() const;
  private:
  int _internal_pod_stats_map_size() const;
  public:
  void clear_pod_stats_map();
  ::tensorflow::profiler::PodStatsMap* mutable_pod_stats_map(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::tensorflow::profiler::PodStatsMap >*
      mutable_pod_stats_map();
  private:
  const ::tensorflow::profiler::PodStatsMap& _internal_pod_stats_map(int index) const;
  ::tensorflow::profiler::PodStatsMap* _internal_add_pod_stats_map();
  public:
  const ::tensorflow::profiler::PodStatsMap& pod_stats_map(int index) const;
  ::tensorflow::profiler::PodStatsMap* add_pod_stats_map();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::tensorflow::profiler::PodStatsMap >&
      pod_stats_map() const;

  // @@protoc_insertion_point(class_scope:tensorflow.profiler.PodStatsSequence)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::tensorflow::profiler::PodStatsMap > pod_stats_map_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_tensorflow_2fcore_2fprofiler_2fprotobuf_2fpod_5fviewer_2eproto;
};
// -------------------------------------------------------------------

class ChannelInfo final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:tensorflow.profiler.ChannelInfo) */ {
 public:
  inline ChannelInfo() : ChannelInfo(nullptr) {}
  ~ChannelInfo() override;
  explicit constexpr ChannelInfo(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  ChannelInfo(const ChannelInfo& from);
  ChannelInfo(ChannelInfo&& from) noexcept
    : ChannelInfo() {
    *this = ::std::move(from);
  }

  inline ChannelInfo& operator=(const ChannelInfo& from) {
    CopyFrom(from);
    return *this;
  }
  inline ChannelInfo& operator=(ChannelInfo&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const ChannelInfo& default_instance() {
    return *internal_default_instance();
  }
  static inline const ChannelInfo* internal_default_instance() {
    return reinterpret_cast<const ChannelInfo*>(
               &_ChannelInfo_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    6;

  friend void swap(ChannelInfo& a, ChannelInfo& b) {
    a.Swap(&b);
  }
  inline void Swap(ChannelInfo* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ChannelInfo* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  ChannelInfo* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<ChannelInfo>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const ChannelInfo& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const ChannelInfo& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ChannelInfo* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "tensorflow.profiler.ChannelInfo";
  }
  protected:
  explicit ChannelInfo(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kHloNamesFieldNumber = 8,
    kSrcCoreIdsFieldNumber = 11,
    kDstCoreIdsFieldNumber = 12,
    kDescriptionFieldNumber = 13,
    kChannelIdFieldNumber = 1,
    kDataSizeFieldNumber = 4,
    kDurationUsFieldNumber = 5,
    kUtilizationFieldNumber = 7,
    kSendDelayUsFieldNumber = 9,
    kOccurrencesFieldNumber = 6,
  };
  // repeated string hlo_names = 8;
  int hlo_names_size() const;
  private:
  int _internal_hlo_names_size() const;
  public:
  void clear_hlo_names();
  const std::string& hlo_names(int index) const;
  std::string* mutable_hlo_names(int index);
  void set_hlo_names(int index, const std::string& value);
  void set_hlo_names(int index, std::string&& value);
  void set_hlo_names(int index, const char* value);
  void set_hlo_names(int index, const char* value, size_t size);
  std::string* add_hlo_names();
  void add_hlo_names(const std::string& value);
  void add_hlo_names(std::string&& value);
  void add_hlo_names(const char* value);
  void add_hlo_names(const char* value, size_t size);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& hlo_names() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_hlo_names();
  private:
  const std::string& _internal_hlo_names(int index) const;
  std::string* _internal_add_hlo_names();
  public:

  // repeated uint32 src_core_ids = 11;
  int src_core_ids_size() const;
  private:
  int _internal_src_core_ids_size() const;
  public:
  void clear_src_core_ids();
  private:
  uint32_t _internal_src_core_ids(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >&
      _internal_src_core_ids() const;
  void _internal_add_src_core_ids(uint32_t value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >*
      _internal_mutable_src_core_ids();
  public:
  uint32_t src_core_ids(int index) const;
  void set_src_core_ids(int index, uint32_t value);
  void add_src_core_ids(uint32_t value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >&
      src_core_ids() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >*
      mutable_src_core_ids();

  // repeated uint32 dst_core_ids = 12;
  int dst_core_ids_size() const;
  private:
  int _internal_dst_core_ids_size() const;
  public:
  void clear_dst_core_ids();
  private:
  uint32_t _internal_dst_core_ids(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >&
      _internal_dst_core_ids() const;
  void _internal_add_dst_core_ids(uint32_t value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >*
      _internal_mutable_dst_core_ids();
  public:
  uint32_t dst_core_ids(int index) const;
  void set_dst_core_ids(int index, uint32_t value);
  void add_dst_core_ids(uint32_t value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >&
      dst_core_ids() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >*
      mutable_dst_core_ids();

  // string description = 13;
  void clear_description();
  const std::string& description() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_description(ArgT0&& arg0, ArgT... args);
  std::string* mutable_description();
  PROTOBUF_NODISCARD std::string* release_description();
  void set_allocated_description(std::string* description);
  private:
  const std::string& _internal_description() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_description(const std::string& value);
  std::string* _internal_mutable_description();
  public:

  // int64 channel_id = 1;
  void clear_channel_id();
  int64_t channel_id() const;
  void set_channel_id(int64_t value);
  private:
  int64_t _internal_channel_id() const;
  void _internal_set_channel_id(int64_t value);
  public:

  // uint64 data_size = 4;
  void clear_data_size();
  uint64_t data_size() const;
  void set_data_size(uint64_t value);
  private:
  uint64_t _internal_data_size() const;
  void _internal_set_data_size(uint64_t value);
  public:

  // double duration_us = 5;
  void clear_duration_us();
  double duration_us() const;
  void set_duration_us(double value);
  private:
  double _internal_duration_us() const;
  void _internal_set_duration_us(double value);
  public:

  // double utilization = 7;
  void clear_utilization();
  double utilization() const;
  void set_utilization(double value);
  private:
  double _internal_utilization() const;
  void _internal_set_utilization(double value);
  public:

  // double send_delay_us = 9;
  void clear_send_delay_us();
  double send_delay_us() const;
  void set_send_delay_us(double value);
  private:
  double _internal_send_delay_us() const;
  void _internal_set_send_delay_us(double value);
  public:

  // uint32 occurrences = 6;
  void clear_occurrences();
  uint32_t occurrences() const;
  void set_occurrences(uint32_t value);
  private:
  uint32_t _internal_occurrences() const;
  void _internal_set_occurrences(uint32_t value);
  public:

  // @@protoc_insertion_point(class_scope:tensorflow.profiler.ChannelInfo)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> hlo_names_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t > src_core_ids_;
  mutable std::atomic<int> _src_core_ids_cached_byte_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t > dst_core_ids_;
  mutable std::atomic<int> _dst_core_ids_cached_byte_size_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr description_;
  int64_t channel_id_;
  uint64_t data_size_;
  double duration_us_;
  double utilization_;
  double send_delay_us_;
  uint32_t occurrences_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_tensorflow_2fcore_2fprofiler_2fprotobuf_2fpod_5fviewer_2eproto;
};
// -------------------------------------------------------------------

class PodViewerSummary final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:tensorflow.profiler.PodViewerSummary) */ {
 public:
  inline PodViewerSummary() : PodViewerSummary(nullptr) {}
  ~PodViewerSummary() override;
  explicit constexpr PodViewerSummary(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  PodViewerSummary(const PodViewerSummary& from);
  PodViewerSummary(PodViewerSummary&& from) noexcept
    : PodViewerSummary() {
    *this = ::std::move(from);
  }

  inline PodViewerSummary& operator=(const PodViewerSummary& from) {
    CopyFrom(from);
    return *this;
  }
  inline PodViewerSummary& operator=(PodViewerSummary&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const PodViewerSummary& default_instance() {
    return *internal_default_instance();
  }
  static inline const PodViewerSummary* internal_default_instance() {
    return reinterpret_cast<const PodViewerSummary*>(
               &_PodViewerSummary_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    7;

  friend void swap(PodViewerSummary& a, PodViewerSummary& b) {
    a.Swap(&b);
  }
  inline void Swap(PodViewerSummary* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PodViewerSummary* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  PodViewerSummary* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<PodViewerSummary>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const PodViewerSummary& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const PodViewerSummary& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(PodViewerSummary* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "tensorflow.profiler.PodViewerSummary";
  }
  protected:
  explicit PodViewerSummary(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kWarningsFieldNumber = 1,
  };
  // repeated string warnings = 1;
  int warnings_size() const;
  private:
  int _internal_warnings_size() const;
  public:
  void clear_warnings();
  const std::string& warnings(int index) const;
  std::string* mutable_warnings(int index);
  void set_warnings(int index, const std::string& value);
  void set_warnings(int index, std::string&& value);
  void set_warnings(int index, const char* value);
  void set_warnings(int index, const char* value, size_t size);
  std::string* add_warnings();
  void add_warnings(const std::string& value);
  void add_warnings(std::string&& value);
  void add_warnings(const char* value);
  void add_warnings(const char* value, size_t size);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& warnings() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_warnings();
  private:
  const std::string& _internal_warnings(int index) const;
  std::string* _internal_add_warnings();
  public:

  // @@protoc_insertion_point(class_scope:tensorflow.profiler.PodViewerSummary)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> warnings_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_tensorflow_2fcore_2fprofiler_2fprotobuf_2fpod_5fviewer_2eproto;
};
// -------------------------------------------------------------------

class PodViewerTopology final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:tensorflow.profiler.PodViewerTopology) */ {
 public:
  inline PodViewerTopology() : PodViewerTopology(nullptr) {}
  ~PodViewerTopology() override;
  explicit constexpr PodViewerTopology(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  PodViewerTopology(const PodViewerTopology& from);
  PodViewerTopology(PodViewerTopology&& from) noexcept
    : PodViewerTopology() {
    *this = ::std::move(from);
  }

  inline PodViewerTopology& operator=(const PodViewerTopology& from) {
    CopyFrom(from);
    return *this;
  }
  inline PodViewerTopology& operator=(PodViewerTopology&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const PodViewerTopology& default_instance() {
    return *internal_default_instance();
  }
  static inline const PodViewerTopology* internal_default_instance() {
    return reinterpret_cast<const PodViewerTopology*>(
               &_PodViewerTopology_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    8;

  friend void swap(PodViewerTopology& a, PodViewerTopology& b) {
    a.Swap(&b);
  }
  inline void Swap(PodViewerTopology* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PodViewerTopology* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  PodViewerTopology* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<PodViewerTopology>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const PodViewerTopology& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const PodViewerTopology& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(PodViewerTopology* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "tensorflow.profiler.PodViewerTopology";
  }
  protected:
  explicit PodViewerTopology(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kXDimensionFieldNumber = 1,
    kYDimensionFieldNumber = 2,
    kZDimensionFieldNumber = 3,
    kHostXStrideFieldNumber = 4,
    kHostYStrideFieldNumber = 5,
    kHostZStrideFieldNumber = 6,
    kNumCoresPerChipFieldNumber = 7,
  };
  // int32 x_dimension = 1;
  void clear_x_dimension();
  int32_t x_dimension() const;
  void set_x_dimension(int32_t value);
  private:
  int32_t _internal_x_dimension() const;
  void _internal_set_x_dimension(int32_t value);
  public:

  // int32 y_dimension = 2;
  void clear_y_dimension();
  int32_t y_dimension() const;
  void set_y_dimension(int32_t value);
  private:
  int32_t _internal_y_dimension() const;
  void _internal_set_y_dimension(int32_t value);
  public:

  // int32 z_dimension = 3;
  void clear_z_dimension();
  int32_t z_dimension() const;
  void set_z_dimension(int32_t value);
  private:
  int32_t _internal_z_dimension() const;
  void _internal_set_z_dimension(int32_t value);
  public:

  // int32 host_x_stride = 4;
  void clear_host_x_stride();
  int32_t host_x_stride() const;
  void set_host_x_stride(int32_t value);
  private:
  int32_t _internal_host_x_stride() const;
  void _internal_set_host_x_stride(int32_t value);
  public:

  // int32 host_y_stride = 5;
  void clear_host_y_stride();
  int32_t host_y_stride() const;
  void set_host_y_stride(int32_t value);
  private:
  int32_t _internal_host_y_stride() const;
  void _internal_set_host_y_stride(int32_t value);
  public:

  // int32 host_z_stride = 6;
  void clear_host_z_stride();
  int32_t host_z_stride() const;
  void set_host_z_stride(int32_t value);
  private:
  int32_t _internal_host_z_stride() const;
  void _internal_set_host_z_stride(int32_t value);
  public:

  // int32 num_cores_per_chip = 7;
  void clear_num_cores_per_chip();
  int32_t num_cores_per_chip() const;
  void set_num_cores_per_chip(int32_t value);
  private:
  int32_t _internal_num_cores_per_chip() const;
  void _internal_set_num_cores_per_chip(int32_t value);
  public:

  // @@protoc_insertion_point(class_scope:tensorflow.profiler.PodViewerTopology)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  int32_t x_dimension_;
  int32_t y_dimension_;
  int32_t z_dimension_;
  int32_t host_x_stride_;
  int32_t host_y_stride_;
  int32_t host_z_stride_;
  int32_t num_cores_per_chip_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_tensorflow_2fcore_2fprofiler_2fprotobuf_2fpod_5fviewer_2eproto;
};
// -------------------------------------------------------------------

class PodViewerDatabase final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:tensorflow.profiler.PodViewerDatabase) */ {
 public:
  inline PodViewerDatabase() : PodViewerDatabase(nullptr) {}
  ~PodViewerDatabase() override;
  explicit constexpr PodViewerDatabase(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  PodViewerDatabase(const PodViewerDatabase& from);
  PodViewerDatabase(PodViewerDatabase&& from) noexcept
    : PodViewerDatabase() {
    *this = ::std::move(from);
  }

  inline PodViewerDatabase& operator=(const PodViewerDatabase& from) {
    CopyFrom(from);
    return *this;
  }
  inline PodViewerDatabase& operator=(PodViewerDatabase&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const PodViewerDatabase& default_instance() {
    return *internal_default_instance();
  }
  static inline const PodViewerDatabase* internal_default_instance() {
    return reinterpret_cast<const PodViewerDatabase*>(
               &_PodViewerDatabase_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    9;

  friend void swap(PodViewerDatabase& a, PodViewerDatabase& b) {
    a.Swap(&b);
  }
  inline void Swap(PodViewerDatabase* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PodViewerDatabase* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  PodViewerDatabase* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<PodViewerDatabase>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const PodViewerDatabase& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const PodViewerDatabase& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(PodViewerDatabase* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "tensorflow.profiler.PodViewerDatabase";
  }
  protected:
  explicit PodViewerDatabase(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kStepBreakdownEventsFieldNumber = 9,
    kDeviceTypeFieldNumber = 10,
    kPodStatsSequenceFieldNumber = 3,
    kSummaryFieldNumber = 7,
    kDiagnosticsFieldNumber = 8,
    kTopologyFieldNumber = 11,
  };
  // repeated .tensorflow.profiler.StepBreakdownEvents step_breakdown_events = 9;
  int step_breakdown_events_size() const;
  private:
  int _internal_step_breakdown_events_size() const;
  public:
  void clear_step_breakdown_events();
  ::tensorflow::profiler::StepBreakdownEvents* mutable_step_breakdown_events(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::tensorflow::profiler::StepBreakdownEvents >*
      mutable_step_breakdown_events();
  private:
  const ::tensorflow::profiler::StepBreakdownEvents& _internal_step_breakdown_events(int index) const;
  ::tensorflow::profiler::StepBreakdownEvents* _internal_add_step_breakdown_events();
  public:
  const ::tensorflow::profiler::StepBreakdownEvents& step_breakdown_events(int index) const;
  ::tensorflow::profiler::StepBreakdownEvents* add_step_breakdown_events();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::tensorflow::profiler::StepBreakdownEvents >&
      step_breakdown_events() const;

  // string device_type = 10;
  void clear_device_type();
  const std::string& device_type() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_device_type(ArgT0&& arg0, ArgT... args);
  std::string* mutable_device_type();
  PROTOBUF_NODISCARD std::string* release_device_type();
  void set_allocated_device_type(std::string* device_type);
  private:
  const std::string& _internal_device_type() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_device_type(const std::string& value);
  std::string* _internal_mutable_device_type();
  public:

  // .tensorflow.profiler.PodStatsSequence pod_stats_sequence = 3;
  bool has_pod_stats_sequence() const;
  private:
  bool _internal_has_pod_stats_sequence() const;
  public:
  void clear_pod_stats_sequence();
  const ::tensorflow::profiler::PodStatsSequence& pod_stats_sequence() const;
  PROTOBUF_NODISCARD ::tensorflow::profiler::PodStatsSequence* release_pod_stats_sequence();
  ::tensorflow::profiler::PodStatsSequence* mutable_pod_stats_sequence();
  void set_allocated_pod_stats_sequence(::tensorflow::profiler::PodStatsSequence* pod_stats_sequence);
  private:
  const ::tensorflow::profiler::PodStatsSequence& _internal_pod_stats_sequence() const;
  ::tensorflow::profiler::PodStatsSequence* _internal_mutable_pod_stats_sequence();
  public:
  void unsafe_arena_set_allocated_pod_stats_sequence(
      ::tensorflow::profiler::PodStatsSequence* pod_stats_sequence);
  ::tensorflow::profiler::PodStatsSequence* unsafe_arena_release_pod_stats_sequence();

  // .tensorflow.profiler.PodViewerSummary summary = 7;
  bool has_summary() const;
  private:
  bool _internal_has_summary() const;
  public:
  void clear_summary();
  const ::tensorflow::profiler::PodViewerSummary& summary() const;
  PROTOBUF_NODISCARD ::tensorflow::profiler::PodViewerSummary* release_summary();
  ::tensorflow::profiler::PodViewerSummary* mutable_summary();
  void set_allocated_summary(::tensorflow::profiler::PodViewerSummary* summary);
  private:
  const ::tensorflow::profiler::PodViewerSummary& _internal_summary() const;
  ::tensorflow::profiler::PodViewerSummary* _internal_mutable_summary();
  public:
  void unsafe_arena_set_allocated_summary(
      ::tensorflow::profiler::PodViewerSummary* summary);
  ::tensorflow::profiler::PodViewerSummary* unsafe_arena_release_summary();

  // .tensorflow.profiler.Diagnostics diagnostics = 8;
  bool has_diagnostics() const;
  private:
  bool _internal_has_diagnostics() const;
  public:
  void clear_diagnostics();
  const ::tensorflow::profiler::Diagnostics& diagnostics() const;
  PROTOBUF_NODISCARD ::tensorflow::profiler::Diagnostics* release_diagnostics();
  ::tensorflow::profiler::Diagnostics* mutable_diagnostics();
  void set_allocated_diagnostics(::tensorflow::profiler::Diagnostics* diagnostics);
  private:
  const ::tensorflow::profiler::Diagnostics& _internal_diagnostics() const;
  ::tensorflow::profiler::Diagnostics* _internal_mutable_diagnostics();
  public:
  void unsafe_arena_set_allocated_diagnostics(
      ::tensorflow::profiler::Diagnostics* diagnostics);
  ::tensorflow::profiler::Diagnostics* unsafe_arena_release_diagnostics();

  // .tensorflow.profiler.PodViewerTopology topology = 11;
  bool has_topology() const;
  private:
  bool _internal_has_topology() const;
  public:
  void clear_topology();
  const ::tensorflow::profiler::PodViewerTopology& topology() const;
  PROTOBUF_NODISCARD ::tensorflow::profiler::PodViewerTopology* release_topology();
  ::tensorflow::profiler::PodViewerTopology* mutable_topology();
  void set_allocated_topology(::tensorflow::profiler::PodViewerTopology* topology);
  private:
  const ::tensorflow::profiler::PodViewerTopology& _internal_topology() const;
  ::tensorflow::profiler::PodViewerTopology* _internal_mutable_topology();
  public:
  void unsafe_arena_set_allocated_topology(
      ::tensorflow::profiler::PodViewerTopology* topology);
  ::tensorflow::profiler::PodViewerTopology* unsafe_arena_release_topology();

  // @@protoc_insertion_point(class_scope:tensorflow.profiler.PodViewerDatabase)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::tensorflow::profiler::StepBreakdownEvents > step_breakdown_events_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr device_type_;
  ::tensorflow::profiler::PodStatsSequence* pod_stats_sequence_;
  ::tensorflow::profiler::PodViewerSummary* summary_;
  ::tensorflow::profiler::Diagnostics* diagnostics_;
  ::tensorflow::profiler::PodViewerTopology* topology_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_tensorflow_2fcore_2fprofiler_2fprotobuf_2fpod_5fviewer_2eproto;
};
// ===================================================================


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

#ifdef __GNUC__
  #pragma GCC diagnostic push
  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
#endif  // __GNUC__
// ReplicaGroup

// repeated int64 replica_ids = 1;
inline int ReplicaGroup::_internal_replica_ids_size() const {
  return replica_ids_.size();
}
inline int ReplicaGroup::replica_ids_size() const {
  return _internal_replica_ids_size();
}
inline void ReplicaGroup::clear_replica_ids() {
  replica_ids_.Clear();
}
inline int64_t ReplicaGroup::_internal_replica_ids(int index) const {
  return replica_ids_.Get(index);
}
inline int64_t ReplicaGroup::replica_ids(int index) const {
  // @@protoc_insertion_point(field_get:tensorflow.profiler.ReplicaGroup.replica_ids)
  return _internal_replica_ids(index);
}
inline void ReplicaGroup::set_replica_ids(int index, int64_t value) {
  replica_ids_.Set(index, value);
  // @@protoc_insertion_point(field_set:tensorflow.profiler.ReplicaGroup.replica_ids)
}
inline void ReplicaGroup::_internal_add_replica_ids(int64_t value) {
  replica_ids_.Add(value);
}
inline void ReplicaGroup::add_replica_ids(int64_t value) {
  _internal_add_replica_ids(value);
  // @@protoc_insertion_point(field_add:tensorflow.profiler.ReplicaGroup.replica_ids)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int64_t >&
ReplicaGroup::_internal_replica_ids() const {
  return replica_ids_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int64_t >&
ReplicaGroup::replica_ids() const {
  // @@protoc_insertion_point(field_list:tensorflow.profiler.ReplicaGroup.replica_ids)
  return _internal_replica_ids();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< int64_t >*
ReplicaGroup::_internal_mutable_replica_ids() {
  return &replica_ids_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< int64_t >*
ReplicaGroup::mutable_replica_ids() {
  // @@protoc_insertion_point(field_mutable_list:tensorflow.profiler.ReplicaGroup.replica_ids)
  return _internal_mutable_replica_ids();
}

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

// AllReduceOpInfo

// string name = 1;
inline void AllReduceOpInfo::clear_name() {
  name_.ClearToEmpty();
}
inline const std::string& AllReduceOpInfo::name() const {
  // @@protoc_insertion_point(field_get:tensorflow.profiler.AllReduceOpInfo.name)
  return _internal_name();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void AllReduceOpInfo::set_name(ArgT0&& arg0, ArgT... args) {
 
 name_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:tensorflow.profiler.AllReduceOpInfo.name)
}
inline std::string* AllReduceOpInfo::mutable_name() {
  std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:tensorflow.profiler.AllReduceOpInfo.name)
  return _s;
}
inline const std::string& AllReduceOpInfo::_internal_name() const {
  return name_.Get();
}
inline void AllReduceOpInfo::_internal_set_name(const std::string& value) {
  
  name_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
}
inline std::string* AllReduceOpInfo::_internal_mutable_name() {
  
  return name_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
}
inline std::string* AllReduceOpInfo::release_name() {
  // @@protoc_insertion_point(field_release:tensorflow.profiler.AllReduceOpInfo.name)
  return name_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
}
inline void AllReduceOpInfo::set_allocated_name(std::string* name) {
  if (name != nullptr) {
    
  } else {
    
  }
  name_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), name,
      GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (name_.IsDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited())) {
    name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:tensorflow.profiler.AllReduceOpInfo.name)
}

// uint32 occurrences = 2;
inline void AllReduceOpInfo::clear_occurrences() {
  occurrences_ = 0u;
}
inline uint32_t AllReduceOpInfo::_internal_occurrences() const {
  return occurrences_;
}
inline uint32_t AllReduceOpInfo::occurrences() const {
  // @@protoc_insertion_point(field_get:tensorflow.profiler.AllReduceOpInfo.occurrences)
  return _internal_occurrences();
}
inline void AllReduceOpInfo::_internal_set_occurrences(uint32_t value) {
  
  occurrences_ = value;
}
inline void AllReduceOpInfo::set_occurrences(uint32_t value) {
  _internal_set_occurrences(value);
  // @@protoc_insertion_point(field_set:tensorflow.profiler.AllReduceOpInfo.occurrences)
}

// double duration_us = 3;
inline void AllReduceOpInfo::clear_duration_us() {
  duration_us_ = 0;
}
inline double AllReduceOpInfo::_internal_duration_us() const {
  return duration_us_;
}
inline double AllReduceOpInfo::duration_us() const {
  // @@protoc_insertion_point(field_get:tensorflow.profiler.AllReduceOpInfo.duration_us)
  return _internal_duration_us();
}
inline void AllReduceOpInfo::_internal_set_duration_us(double value) {
  
  duration_us_ = value;
}
inline void AllReduceOpInfo::set_duration_us(double value) {
  _internal_set_duration_us(value);
  // @@protoc_insertion_point(field_set:tensorflow.profiler.AllReduceOpInfo.duration_us)
}

// uint64 data_size = 4;
inline void AllReduceOpInfo::clear_data_size() {
  data_size_ = uint64_t{0u};
}
inline uint64_t AllReduceOpInfo::_internal_data_size() const {
  return data_size_;
}
inline uint64_t AllReduceOpInfo::data_size() const {
  // @@protoc_insertion_point(field_get:tensorflow.profiler.AllReduceOpInfo.data_size)
  return _internal_data_size();
}
inline void AllReduceOpInfo::_internal_set_data_size(uint64_t value) {
  
  data_size_ = value;
}
inline void AllReduceOpInfo::set_data_size(uint64_t value) {
  _internal_set_data_size(value);
  // @@protoc_insertion_point(field_set:tensorflow.profiler.AllReduceOpInfo.data_size)
}

// repeated .tensorflow.profiler.ReplicaGroup replica_groups = 5;
inline int AllReduceOpInfo::_internal_replica_groups_size() const {
  return replica_groups_.size();
}
inline int AllReduceOpInfo::replica_groups_size() const {
  return _internal_replica_groups_size();
}
inline void AllReduceOpInfo::clear_replica_groups() {
  replica_groups_.Clear();
}
inline ::tensorflow::profiler::ReplicaGroup* AllReduceOpInfo::mutable_replica_groups(int index) {
  // @@protoc_insertion_point(field_mutable:tensorflow.profiler.AllReduceOpInfo.replica_groups)
  return replica_groups_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::tensorflow::profiler::ReplicaGroup >*
AllReduceOpInfo::mutable_replica_groups() {
  // @@protoc_insertion_point(field_mutable_list:tensorflow.profiler.AllReduceOpInfo.replica_groups)
  return &replica_groups_;
}
inline const ::tensorflow::profiler::ReplicaGroup& AllReduceOpInfo::_internal_replica_groups(int index) const {
  return replica_groups_.Get(index);
}
inline const ::tensorflow::profiler::ReplicaGroup& AllReduceOpInfo::replica_groups(int index) const {
  // @@protoc_insertion_point(field_get:tensorflow.profiler.AllReduceOpInfo.replica_groups)
  return _internal_replica_groups(index);
}
inline ::tensorflow::profiler::ReplicaGroup* AllReduceOpInfo::_internal_add_replica_groups() {
  return replica_groups_.Add();
}
inline ::tensorflow::profiler::ReplicaGroup* AllReduceOpInfo::add_replica_groups() {
  ::tensorflow::profiler::ReplicaGroup* _add = _internal_add_replica_groups();
  // @@protoc_insertion_point(field_add:tensorflow.profiler.AllReduceOpInfo.replica_groups)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::tensorflow::profiler::ReplicaGroup >&
AllReduceOpInfo::replica_groups() const {
  // @@protoc_insertion_point(field_list:tensorflow.profiler.AllReduceOpInfo.replica_groups)
  return replica_groups_;
}

// string description = 6;
inline void AllReduceOpInfo::clear_description() {
  description_.ClearToEmpty();
}
inline const std::string& AllReduceOpInfo::description() const {
  // @@protoc_insertion_point(field_get:tensorflow.profiler.AllReduceOpInfo.description)
  return _internal_description();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void AllReduceOpInfo::set_description(ArgT0&& arg0, ArgT... args) {
 
 description_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:tensorflow.profiler.AllReduceOpInfo.description)
}
inline std::string* AllReduceOpInfo::mutable_description() {
  std::string* _s = _internal_mutable_description();
  // @@protoc_insertion_point(field_mutable:tensorflow.profiler.AllReduceOpInfo.description)
  return _s;
}
inline const std::string& AllReduceOpInfo::_internal_description() const {
  return description_.Get();
}
inline void AllReduceOpInfo::_internal_set_description(const std::string& value) {
  
  description_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
}
inline std::string* AllReduceOpInfo::_internal_mutable_description() {
  
  return description_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
}
inline std::string* AllReduceOpInfo::release_description() {
  // @@protoc_insertion_point(field_release:tensorflow.profiler.AllReduceOpInfo.description)
  return description_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
}
inline void AllReduceOpInfo::set_allocated_description(std::string* description) {
  if (description != nullptr) {
    
  } else {
    
  }
  description_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), description,
      GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (description_.IsDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited())) {
    description_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:tensorflow.profiler.AllReduceOpInfo.description)
}

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

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

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

// PodStatsMap

// uint32 step_num = 1;
inline void PodStatsMap::clear_step_num() {
  step_num_ = 0u;
}
inline uint32_t PodStatsMap::_internal_step_num() const {
  return step_num_;
}
inline uint32_t PodStatsMap::step_num() const {
  // @@protoc_insertion_point(field_get:tensorflow.profiler.PodStatsMap.step_num)
  return _internal_step_num();
}
inline void PodStatsMap::_internal_set_step_num(uint32_t value) {
  
  step_num_ = value;
}
inline void PodStatsMap::set_step_num(uint32_t value) {
  _internal_set_step_num(value);
  // @@protoc_insertion_point(field_set:tensorflow.profiler.PodStatsMap.step_num)
}

// map<uint32, .tensorflow.profiler.PodStatsRecord> pod_stats_per_core = 2;
inline int PodStatsMap::_internal_pod_stats_per_core_size() const {
  return pod_stats_per_core_.size();
}
inline int PodStatsMap::pod_stats_per_core_size() const {
  return _internal_pod_stats_per_core_size();
}
inline const ::PROTOBUF_NAMESPACE_ID::Map< uint32_t, ::tensorflow::profiler::PodStatsRecord >&
PodStatsMap::_internal_pod_stats_per_core() const {
  return pod_stats_per_core_.GetMap();
}
inline const ::PROTOBUF_NAMESPACE_ID::Map< uint32_t, ::tensorflow::profiler::PodStatsRecord >&
PodStatsMap::pod_stats_per_core() const {
  // @@protoc_insertion_point(field_map:tensorflow.profiler.PodStatsMap.pod_stats_per_core)
  return _internal_pod_stats_per_core();
}
inline ::PROTOBUF_NAMESPACE_ID::Map< uint32_t, ::tensorflow::profiler::PodStatsRecord >*
PodStatsMap::_internal_mutable_pod_stats_per_core() {
  return pod_stats_per_core_.MutableMap();
}
inline ::PROTOBUF_NAMESPACE_ID::Map< uint32_t, ::tensorflow::profiler::PodStatsRecord >*
PodStatsMap::mutable_pod_stats_per_core() {
  // @@protoc_insertion_point(field_mutable_map:tensorflow.profiler.PodStatsMap.pod_stats_per_core)
  return _internal_mutable_pod_stats_per_core();
}

// repeated .tensorflow.profiler.ChannelInfo channel_db = 3;
inline int PodStatsMap::_internal_channel_db_size() const {
  return channel_db_.size();
}
inline int PodStatsMap::channel_db_size() const {
  return _internal_channel_db_size();
}
inline void PodStatsMap::clear_channel_db() {
  channel_db_.Clear();
}
inline ::tensorflow::profiler::ChannelInfo* PodStatsMap::mutable_channel_db(int index) {
  // @@protoc_insertion_point(field_mutable:tensorflow.profiler.PodStatsMap.channel_db)
  return channel_db_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::tensorflow::profiler::ChannelInfo >*
PodStatsMap::mutable_channel_db() {
  // @@protoc_insertion_point(field_mutable_list:tensorflow.profiler.PodStatsMap.channel_db)
  return &channel_db_;
}
inline const ::tensorflow::profiler::ChannelInfo& PodStatsMap::_internal_channel_db(int index) const {
  return channel_db_.Get(index);
}
inline const ::tensorflow::profiler::ChannelInfo& PodStatsMap::channel_db(int index) const {
  // @@protoc_insertion_point(field_get:tensorflow.profiler.PodStatsMap.channel_db)
  return _internal_channel_db(index);
}
inline ::tensorflow::profiler::ChannelInfo* PodStatsMap::_internal_add_channel_db() {
  return channel_db_.Add();
}
inline ::tensorflow::profiler::ChannelInfo* PodStatsMap::add_channel_db() {
  ::tensorflow::profiler::ChannelInfo* _add = _internal_add_channel_db();
  // @@protoc_insertion_point(field_add:tensorflow.profiler.PodStatsMap.channel_db)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::tensorflow::profiler::ChannelInfo >&
PodStatsMap::channel_db() const {
  // @@protoc_insertion_point(field_list:tensorflow.profiler.PodStatsMap.channel_db)
  return channel_db_;
}

// map<uint32, uint32> core_id_to_replica_id_map = 4;
inline int PodStatsMap::_internal_core_id_to_replica_id_map_size() const {
  return core_id_to_replica_id_map_.size();
}
inline int PodStatsMap::core_id_to_replica_id_map_size() const {
  return _internal_core_id_to_replica_id_map_size();
}
inline void PodStatsMap::clear_core_id_to_replica_id_map() {
  core_id_to_replica_id_map_.Clear();
}
inline const ::PROTOBUF_NAMESPACE_ID::Map< uint32_t, uint32_t >&
PodStatsMap::_internal_core_id_to_replica_id_map() const {
  return core_id_to_replica_id_map_.GetMap();
}
inline const ::PROTOBUF_NAMESPACE_ID::Map< uint32_t, uint32_t >&
PodStatsMap::core_id_to_replica_id_map() const {
  // @@protoc_insertion_point(field_map:tensorflow.profiler.PodStatsMap.core_id_to_replica_id_map)
  return _internal_core_id_to_replica_id_map();
}
inline ::PROTOBUF_NAMESPACE_ID::Map< uint32_t, uint32_t >*
PodStatsMap::_internal_mutable_core_id_to_replica_id_map() {
  return core_id_to_replica_id_map_.MutableMap();
}
inline ::PROTOBUF_NAMESPACE_ID::Map< uint32_t, uint32_t >*
PodStatsMap::mutable_core_id_to_replica_id_map() {
  // @@protoc_insertion_point(field_mutable_map:tensorflow.profiler.PodStatsMap.core_id_to_replica_id_map)
  return _internal_mutable_core_id_to_replica_id_map();
}

// repeated .tensorflow.profiler.AllReduceOpInfo all_reduce_op_db = 5;
inline int PodStatsMap::_internal_all_reduce_op_db_size() const {
  return all_reduce_op_db_.size();
}
inline int PodStatsMap::all_reduce_op_db_size() const {
  return _internal_all_reduce_op_db_size();
}
inline void PodStatsMap::clear_all_reduce_op_db() {
  all_reduce_op_db_.Clear();
}
inline ::tensorflow::profiler::AllReduceOpInfo* PodStatsMap::mutable_all_reduce_op_db(int index) {
  // @@protoc_insertion_point(field_mutable:tensorflow.profiler.PodStatsMap.all_reduce_op_db)
  return all_reduce_op_db_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::tensorflow::profiler::AllReduceOpInfo >*
PodStatsMap::mutable_all_reduce_op_db() {
  // @@protoc_insertion_point(field_mutable_list:tensorflow.profiler.PodStatsMap.all_reduce_op_db)
  return &all_reduce_op_db_;
}
inline const ::tensorflow::profiler::AllReduceOpInfo& PodStatsMap::_internal_all_reduce_op_db(int index) const {
  return all_reduce_op_db_.Get(index);
}
inline const ::tensorflow::profiler::AllReduceOpInfo& PodStatsMap::all_reduce_op_db(int index) const {
  // @@protoc_insertion_point(field_get:tensorflow.profiler.PodStatsMap.all_reduce_op_db)
  return _internal_all_reduce_op_db(index);
}
inline ::tensorflow::profiler::AllReduceOpInfo* PodStatsMap::_internal_add_all_reduce_op_db() {
  return all_reduce_op_db_.Add();
}
inline ::tensorflow::profiler::AllReduceOpInfo* PodStatsMap::add_all_reduce_op_db() {
  ::tensorflow::profiler::AllReduceOpInfo* _add = _internal_add_all_reduce_op_db();
  // @@protoc_insertion_point(field_add:tensorflow.profiler.PodStatsMap.all_reduce_op_db)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::tensorflow::profiler::AllReduceOpInfo >&
PodStatsMap::all_reduce_op_db() const {
  // @@protoc_insertion_point(field_list:tensorflow.profiler.PodStatsMap.all_reduce_op_db)
  return all_reduce_op_db_;
}

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

// PodStatsSequence

// repeated .tensorflow.profiler.PodStatsMap pod_stats_map = 1;
inline int PodStatsSequence::_internal_pod_stats_map_size() const {
  return pod_stats_map_.size();
}
inline int PodStatsSequence::pod_stats_map_size() const {
  return _internal_pod_stats_map_size();
}
inline void PodStatsSequence::clear_pod_stats_map() {
  pod_stats_map_.Clear();
}
inline ::tensorflow::profiler::PodStatsMap* PodStatsSequence::mutable_pod_stats_map(int index) {
  // @@protoc_insertion_point(field_mutable:tensorflow.profiler.PodStatsSequence.pod_stats_map)
  return pod_stats_map_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::tensorflow::profiler::PodStatsMap >*
PodStatsSequence::mutable_pod_stats_map() {
  // @@protoc_insertion_point(field_mutable_list:tensorflow.profiler.PodStatsSequence.pod_stats_map)
  return &pod_stats_map_;
}
inline const ::tensorflow::profiler::PodStatsMap& PodStatsSequence::_internal_pod_stats_map(int index) const {
  return pod_stats_map_.Get(index);
}
inline const ::tensorflow::profiler::PodStatsMap& PodStatsSequence::pod_stats_map(int index) const {
  // @@protoc_insertion_point(field_get:tensorflow.profiler.PodStatsSequence.pod_stats_map)
  return _internal_pod_stats_map(index);
}
inline ::tensorflow::profiler::PodStatsMap* PodStatsSequence::_internal_add_pod_stats_map() {
  return pod_stats_map_.Add();
}
inline ::tensorflow::profiler::PodStatsMap* PodStatsSequence::add_pod_stats_map() {
  ::tensorflow::profiler::PodStatsMap* _add = _internal_add_pod_stats_map();
  // @@protoc_insertion_point(field_add:tensorflow.profiler.PodStatsSequence.pod_stats_map)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::tensorflow::profiler::PodStatsMap >&
PodStatsSequence::pod_stats_map() const {
  // @@protoc_insertion_point(field_list:tensorflow.profiler.PodStatsSequence.pod_stats_map)
  return pod_stats_map_;
}

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

// ChannelInfo

// int64 channel_id = 1;
inline void ChannelInfo::clear_channel_id() {
  channel_id_ = int64_t{0};
}
inline int64_t ChannelInfo::_internal_channel_id() const {
  return channel_id_;
}
inline int64_t ChannelInfo::channel_id() const {
  // @@protoc_insertion_point(field_get:tensorflow.profiler.ChannelInfo.channel_id)
  return _internal_channel_id();
}
inline void ChannelInfo::_internal_set_channel_id(int64_t value) {
  
  channel_id_ = value;
}
inline void ChannelInfo::set_channel_id(int64_t value) {
  _internal_set_channel_id(value);
  // @@protoc_insertion_point(field_set:tensorflow.profiler.ChannelInfo.channel_id)
}

// repeated uint32 src_core_ids = 11;
inline int ChannelInfo::_internal_src_core_ids_size() const {
  return src_core_ids_.size();
}
inline int ChannelInfo::src_core_ids_size() const {
  return _internal_src_core_ids_size();
}
inline void ChannelInfo::clear_src_core_ids() {
  src_core_ids_.Clear();
}
inline uint32_t ChannelInfo::_internal_src_core_ids(int index) const {
  return src_core_ids_.Get(index);
}
inline uint32_t ChannelInfo::src_core_ids(int index) const {
  // @@protoc_insertion_point(field_get:tensorflow.profiler.ChannelInfo.src_core_ids)
  return _internal_src_core_ids(index);
}
inline void ChannelInfo::set_src_core_ids(int index, uint32_t value) {
  src_core_ids_.Set(index, value);
  // @@protoc_insertion_point(field_set:tensorflow.profiler.ChannelInfo.src_core_ids)
}
inline void ChannelInfo::_internal_add_src_core_ids(uint32_t value) {
  src_core_ids_.Add(value);
}
inline void ChannelInfo::add_src_core_ids(uint32_t value) {
  _internal_add_src_core_ids(value);
  // @@protoc_insertion_point(field_add:tensorflow.profiler.ChannelInfo.src_core_ids)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >&
ChannelInfo::_internal_src_core_ids() const {
  return src_core_ids_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >&
ChannelInfo::src_core_ids() const {
  // @@protoc_insertion_point(field_list:tensorflow.profiler.ChannelInfo.src_core_ids)
  return _internal_src_core_ids();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >*
ChannelInfo::_internal_mutable_src_core_ids() {
  return &src_core_ids_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >*
ChannelInfo::mutable_src_core_ids() {
  // @@protoc_insertion_point(field_mutable_list:tensorflow.profiler.ChannelInfo.src_core_ids)
  return _internal_mutable_src_core_ids();
}

// repeated uint32 dst_core_ids = 12;
inline int ChannelInfo::_internal_dst_core_ids_size() const {
  return dst_core_ids_.size();
}
inline int ChannelInfo::dst_core_ids_size() const {
  return _internal_dst_core_ids_size();
}
inline void ChannelInfo::clear_dst_core_ids() {
  dst_core_ids_.Clear();
}
inline uint32_t ChannelInfo::_internal_dst_core_ids(int index) const {
  return dst_core_ids_.Get(index);
}
inline uint32_t ChannelInfo::dst_core_ids(int index) const {
  // @@protoc_insertion_point(field_get:tensorflow.profiler.ChannelInfo.dst_core_ids)
  return _internal_dst_core_ids(index);
}
inline void ChannelInfo::set_dst_core_ids(int index, uint32_t value) {
  dst_core_ids_.Set(index, value);
  // @@protoc_insertion_point(field_set:tensorflow.profiler.ChannelInfo.dst_core_ids)
}
inline void ChannelInfo::_internal_add_dst_core_ids(uint32_t value) {
  dst_core_ids_.Add(value);
}
inline void ChannelInfo::add_dst_core_ids(uint32_t value) {
  _internal_add_dst_core_ids(value);
  // @@protoc_insertion_point(field_add:tensorflow.profiler.ChannelInfo.dst_core_ids)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >&
ChannelInfo::_internal_dst_core_ids() const {
  return dst_core_ids_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >&
ChannelInfo::dst_core_ids() const {
  // @@protoc_insertion_point(field_list:tensorflow.profiler.ChannelInfo.dst_core_ids)
  return _internal_dst_core_ids();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >*
ChannelInfo::_internal_mutable_dst_core_ids() {
  return &dst_core_ids_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >*
ChannelInfo::mutable_dst_core_ids() {
  // @@protoc_insertion_point(field_mutable_list:tensorflow.profiler.ChannelInfo.dst_core_ids)
  return _internal_mutable_dst_core_ids();
}

// uint64 data_size = 4;
inline void ChannelInfo::clear_data_size() {
  data_size_ = uint64_t{0u};
}
inline uint64_t ChannelInfo::_internal_data_size() const {
  return data_size_;
}
inline uint64_t ChannelInfo::data_size() const {
  // @@protoc_insertion_point(field_get:tensorflow.profiler.ChannelInfo.data_size)
  return _internal_data_size();
}
inline void ChannelInfo::_internal_set_data_size(uint64_t value) {
  
  data_size_ = value;
}
inline void ChannelInfo::set_data_size(uint64_t value) {
  _internal_set_data_size(value);
  // @@protoc_insertion_point(field_set:tensorflow.profiler.ChannelInfo.data_size)
}

// double duration_us = 5;
inline void ChannelInfo::clear_duration_us() {
  duration_us_ = 0;
}
inline double ChannelInfo::_internal_duration_us() const {
  return duration_us_;
}
inline double ChannelInfo::duration_us() const {
  // @@protoc_insertion_point(field_get:tensorflow.profiler.ChannelInfo.duration_us)
  return _internal_duration_us();
}
inline void ChannelInfo::_internal_set_duration_us(double value) {
  
  duration_us_ = value;
}
inline void ChannelInfo::set_duration_us(double value) {
  _internal_set_duration_us(value);
  // @@protoc_insertion_point(field_set:tensorflow.profiler.ChannelInfo.duration_us)
}

// uint32 occurrences = 6;
inline void ChannelInfo::clear_occurrences() {
  occurrences_ = 0u;
}
inline uint32_t ChannelInfo::_internal_occurrences() const {
  return occurrences_;
}
inline uint32_t ChannelInfo::occurrences() const {
  // @@protoc_insertion_point(field_get:tensorflow.profiler.ChannelInfo.occurrences)
  return _internal_occurrences();
}
inline void ChannelInfo::_internal_set_occurrences(uint32_t value) {
  
  occurrences_ = value;
}
inline void ChannelInfo::set_occurrences(uint32_t value) {
  _internal_set_occurrences(value);
  // @@protoc_insertion_point(field_set:tensorflow.profiler.ChannelInfo.occurrences)
}

// double utilization = 7;
inline void ChannelInfo::clear_utilization() {
  utilization_ = 0;
}
inline double ChannelInfo::_internal_utilization() const {
  return utilization_;
}
inline double ChannelInfo::utilization() const {
  // @@protoc_insertion_point(field_get:tensorflow.profiler.ChannelInfo.utilization)
  return _internal_utilization();
}
inline void ChannelInfo::_internal_set_utilization(double value) {
  
  utilization_ = value;
}
inline void ChannelInfo::set_utilization(double value) {
  _internal_set_utilization(value);
  // @@protoc_insertion_point(field_set:tensorflow.profiler.ChannelInfo.utilization)
}

// repeated string hlo_names = 8;
inline int ChannelInfo::_internal_hlo_names_size() const {
  return hlo_names_.size();
}
inline int ChannelInfo::hlo_names_size() const {
  return _internal_hlo_names_size();
}
inline void ChannelInfo::clear_hlo_names() {
  hlo_names_.Clear();
}
inline std::string* ChannelInfo::add_hlo_names() {
  std::string* _s = _internal_add_hlo_names();
  // @@protoc_insertion_point(field_add_mutable:tensorflow.profiler.ChannelInfo.hlo_names)
  return _s;
}
inline const std::string& ChannelInfo::_internal_hlo_names(int index) const {
  return hlo_names_.Get(index);
}
inline const std::string& ChannelInfo::hlo_names(int index) const {
  // @@protoc_insertion_point(field_get:tensorflow.profiler.ChannelInfo.hlo_names)
  return _internal_hlo_names(index);
}
inline std::string* ChannelInfo::mutable_hlo_names(int index) {
  // @@protoc_insertion_point(field_mutable:tensorflow.profiler.ChannelInfo.hlo_names)
  return hlo_names_.Mutable(index);
}
inline void ChannelInfo::set_hlo_names(int index, const std::string& value) {
  hlo_names_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set:tensorflow.profiler.ChannelInfo.hlo_names)
}
inline void ChannelInfo::set_hlo_names(int index, std::string&& value) {
  hlo_names_.Mutable(index)->assign(std::move(value));
  // @@protoc_insertion_point(field_set:tensorflow.profiler.ChannelInfo.hlo_names)
}
inline void ChannelInfo::set_hlo_names(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  hlo_names_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:tensorflow.profiler.ChannelInfo.hlo_names)
}
inline void ChannelInfo::set_hlo_names(int index, const char* value, size_t size) {
  hlo_names_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:tensorflow.profiler.ChannelInfo.hlo_names)
}
inline std::string* ChannelInfo::_internal_add_hlo_names() {
  return hlo_names_.Add();
}
inline void ChannelInfo::add_hlo_names(const std::string& value) {
  hlo_names_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:tensorflow.profiler.ChannelInfo.hlo_names)
}
inline void ChannelInfo::add_hlo_names(std::string&& value) {
  hlo_names_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:tensorflow.profiler.ChannelInfo.hlo_names)
}
inline void ChannelInfo::add_hlo_names(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  hlo_names_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:tensorflow.profiler.ChannelInfo.hlo_names)
}
inline void ChannelInfo::add_hlo_names(const char* value, size_t size) {
  hlo_names_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:tensorflow.profiler.ChannelInfo.hlo_names)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
ChannelInfo::hlo_names() const {
  // @@protoc_insertion_point(field_list:tensorflow.profiler.ChannelInfo.hlo_names)
  return hlo_names_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
ChannelInfo::mutable_hlo_names() {
  // @@protoc_insertion_point(field_mutable_list:tensorflow.profiler.ChannelInfo.hlo_names)
  return &hlo_names_;
}

// double send_delay_us = 9;
inline void ChannelInfo::clear_send_delay_us() {
  send_delay_us_ = 0;
}
inline double ChannelInfo::_internal_send_delay_us() const {
  return send_delay_us_;
}
inline double ChannelInfo::send_delay_us() const {
  // @@protoc_insertion_point(field_get:tensorflow.profiler.ChannelInfo.send_delay_us)
  return _internal_send_delay_us();
}
inline void ChannelInfo::_internal_set_send_delay_us(double value) {
  
  send_delay_us_ = value;
}
inline void ChannelInfo::set_send_delay_us(double value) {
  _internal_set_send_delay_us(value);
  // @@protoc_insertion_point(field_set:tensorflow.profiler.ChannelInfo.send_delay_us)
}

// string description = 13;
inline void ChannelInfo::clear_description() {
  description_.ClearToEmpty();
}
inline const std::string& ChannelInfo::description() const {
  // @@protoc_insertion_point(field_get:tensorflow.profiler.ChannelInfo.description)
  return _internal_description();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void ChannelInfo::set_description(ArgT0&& arg0, ArgT... args) {
 
 description_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:tensorflow.profiler.ChannelInfo.description)
}
inline std::string* ChannelInfo::mutable_description() {
  std::string* _s = _internal_mutable_description();
  // @@protoc_insertion_point(field_mutable:tensorflow.profiler.ChannelInfo.description)
  return _s;
}
inline const std::string& ChannelInfo::_internal_description() const {
  return description_.Get();
}
inline void ChannelInfo::_internal_set_description(const std::string& value) {
  
  description_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
}
inline std::string* ChannelInfo::_internal_mutable_description() {
  
  return description_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
}
inline std::string* ChannelInfo::release_description() {
  // @@protoc_insertion_point(field_release:tensorflow.profiler.ChannelInfo.description)
  return description_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
}
inline void ChannelInfo::set_allocated_description(std::string* description) {
  if (description != nullptr) {
    
  } else {
    
  }
  description_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), description,
      GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (description_.IsDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited())) {
    description_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:tensorflow.profiler.ChannelInfo.description)
}

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

// PodViewerSummary

// repeated string warnings = 1;
inline int PodViewerSummary::_internal_warnings_size() const {
  return warnings_.size();
}
inline int PodViewerSummary::warnings_size() const {
  return _internal_warnings_size();
}
inline void PodViewerSummary::clear_warnings() {
  warnings_.Clear();
}
inline std::string* PodViewerSummary::add_warnings() {
  std::string* _s = _internal_add_warnings();
  // @@protoc_insertion_point(field_add_mutable:tensorflow.profiler.PodViewerSummary.warnings)
  return _s;
}
inline const std::string& PodViewerSummary::_internal_warnings(int index) const {
  return warnings_.Get(index);
}
inline const std::string& PodViewerSummary::warnings(int index) const {
  // @@protoc_insertion_point(field_get:tensorflow.profiler.PodViewerSummary.warnings)
  return _internal_warnings(index);
}
inline std::string* PodViewerSummary::mutable_warnings(int index) {
  // @@protoc_insertion_point(field_mutable:tensorflow.profiler.PodViewerSummary.warnings)
  return warnings_.Mutable(index);
}
inline void PodViewerSummary::set_warnings(int index, const std::string& value) {
  warnings_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set:tensorflow.profiler.PodViewerSummary.warnings)
}
inline void PodViewerSummary::set_warnings(int index, std::string&& value) {
  warnings_.Mutable(index)->assign(std::move(value));
  // @@protoc_insertion_point(field_set:tensorflow.profiler.PodViewerSummary.warnings)
}
inline void PodViewerSummary::set_warnings(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  warnings_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:tensorflow.profiler.PodViewerSummary.warnings)
}
inline void PodViewerSummary::set_warnings(int index, const char* value, size_t size) {
  warnings_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:tensorflow.profiler.PodViewerSummary.warnings)
}
inline std::string* PodViewerSummary::_internal_add_warnings() {
  return warnings_.Add();
}
inline void PodViewerSummary::add_warnings(const std::string& value) {
  warnings_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:tensorflow.profiler.PodViewerSummary.warnings)
}
inline void PodViewerSummary::add_warnings(std::string&& value) {
  warnings_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:tensorflow.profiler.PodViewerSummary.warnings)
}
inline void PodViewerSummary::add_warnings(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  warnings_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:tensorflow.profiler.PodViewerSummary.warnings)
}
inline void PodViewerSummary::add_warnings(const char* value, size_t size) {
  warnings_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:tensorflow.profiler.PodViewerSummary.warnings)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
PodViewerSummary::warnings() const {
  // @@protoc_insertion_point(field_list:tensorflow.profiler.PodViewerSummary.warnings)
  return warnings_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
PodViewerSummary::mutable_warnings() {
  // @@protoc_insertion_point(field_mutable_list:tensorflow.profiler.PodViewerSummary.warnings)
  return &warnings_;
}

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

// PodViewerTopology

// int32 x_dimension = 1;
inline void PodViewerTopology::clear_x_dimension() {
  x_dimension_ = 0;
}
inline int32_t PodViewerTopology::_internal_x_dimension() const {
  return x_dimension_;
}
inline int32_t PodViewerTopology::x_dimension() const {
  // @@protoc_insertion_point(field_get:tensorflow.profiler.PodViewerTopology.x_dimension)
  return _internal_x_dimension();
}
inline void PodViewerTopology::_internal_set_x_dimension(int32_t value) {
  
  x_dimension_ = value;
}
inline void PodViewerTopology::set_x_dimension(int32_t value) {
  _internal_set_x_dimension(value);
  // @@protoc_insertion_point(field_set:tensorflow.profiler.PodViewerTopology.x_dimension)
}

// int32 y_dimension = 2;
inline void PodViewerTopology::clear_y_dimension() {
  y_dimension_ = 0;
}
inline int32_t PodViewerTopology::_internal_y_dimension() const {
  return y_dimension_;
}
inline int32_t PodViewerTopology::y_dimension() const {
  // @@protoc_insertion_point(field_get:tensorflow.profiler.PodViewerTopology.y_dimension)
  return _internal_y_dimension();
}
inline void PodViewerTopology::_internal_set_y_dimension(int32_t value) {
  
  y_dimension_ = value;
}
inline void PodViewerTopology::set_y_dimension(int32_t value) {
  _internal_set_y_dimension(value);
  // @@protoc_insertion_point(field_set:tensorflow.profiler.PodViewerTopology.y_dimension)
}

// int32 z_dimension = 3;
inline void PodViewerTopology::clear_z_dimension() {
  z_dimension_ = 0;
}
inline int32_t PodViewerTopology::_internal_z_dimension() const {
  return z_dimension_;
}
inline int32_t PodViewerTopology::z_dimension() const {
  // @@protoc_insertion_point(field_get:tensorflow.profiler.PodViewerTopology.z_dimension)
  return _internal_z_dimension();
}
inline void PodViewerTopology::_internal_set_z_dimension(int32_t value) {
  
  z_dimension_ = value;
}
inline void PodViewerTopology::set_z_dimension(int32_t value) {
  _internal_set_z_dimension(value);
  // @@protoc_insertion_point(field_set:tensorflow.profiler.PodViewerTopology.z_dimension)
}

// int32 host_x_stride = 4;
inline void PodViewerTopology::clear_host_x_stride() {
  host_x_stride_ = 0;
}
inline int32_t PodViewerTopology::_internal_host_x_stride() const {
  return host_x_stride_;
}
inline int32_t PodViewerTopology::host_x_stride() const {
  // @@protoc_insertion_point(field_get:tensorflow.profiler.PodViewerTopology.host_x_stride)
  return _internal_host_x_stride();
}
inline void PodViewerTopology::_internal_set_host_x_stride(int32_t value) {
  
  host_x_stride_ = value;
}
inline void PodViewerTopology::set_host_x_stride(int32_t value) {
  _internal_set_host_x_stride(value);
  // @@protoc_insertion_point(field_set:tensorflow.profiler.PodViewerTopology.host_x_stride)
}

// int32 host_y_stride = 5;
inline void PodViewerTopology::clear_host_y_stride() {
  host_y_stride_ = 0;
}
inline int32_t PodViewerTopology::_internal_host_y_stride() const {
  return host_y_stride_;
}
inline int32_t PodViewerTopology::host_y_stride() const {
  // @@protoc_insertion_point(field_get:tensorflow.profiler.PodViewerTopology.host_y_stride)
  return _internal_host_y_stride();
}
inline void PodViewerTopology::_internal_set_host_y_stride(int32_t value) {
  
  host_y_stride_ = value;
}
inline void PodViewerTopology::set_host_y_stride(int32_t value) {
  _internal_set_host_y_stride(value);
  // @@protoc_insertion_point(field_set:tensorflow.profiler.PodViewerTopology.host_y_stride)
}

// int32 host_z_stride = 6;
inline void PodViewerTopology::clear_host_z_stride() {
  host_z_stride_ = 0;
}
inline int32_t PodViewerTopology::_internal_host_z_stride() const {
  return host_z_stride_;
}
inline int32_t PodViewerTopology::host_z_stride() const {
  // @@protoc_insertion_point(field_get:tensorflow.profiler.PodViewerTopology.host_z_stride)
  return _internal_host_z_stride();
}
inline void PodViewerTopology::_internal_set_host_z_stride(int32_t value) {
  
  host_z_stride_ = value;
}
inline void PodViewerTopology::set_host_z_stride(int32_t value) {
  _internal_set_host_z_stride(value);
  // @@protoc_insertion_point(field_set:tensorflow.profiler.PodViewerTopology.host_z_stride)
}

// int32 num_cores_per_chip = 7;
inline void PodViewerTopology::clear_num_cores_per_chip() {
  num_cores_per_chip_ = 0;
}
inline int32_t PodViewerTopology::_internal_num_cores_per_chip() const {
  return num_cores_per_chip_;
}
inline int32_t PodViewerTopology::num_cores_per_chip() const {
  // @@protoc_insertion_point(field_get:tensorflow.profiler.PodViewerTopology.num_cores_per_chip)
  return _internal_num_cores_per_chip();
}
inline void PodViewerTopology::_internal_set_num_cores_per_chip(int32_t value) {
  
  num_cores_per_chip_ = value;
}
inline void PodViewerTopology::set_num_cores_per_chip(int32_t value) {
  _internal_set_num_cores_per_chip(value);
  // @@protoc_insertion_point(field_set:tensorflow.profiler.PodViewerTopology.num_cores_per_chip)
}

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

// PodViewerDatabase

// string device_type = 10;
inline void PodViewerDatabase::clear_device_type() {
  device_type_.ClearToEmpty();
}
inline const std::string& PodViewerDatabase::device_type() const {
  // @@protoc_insertion_point(field_get:tensorflow.profiler.PodViewerDatabase.device_type)
  return _internal_device_type();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void PodViewerDatabase::set_device_type(ArgT0&& arg0, ArgT... args) {
 
 device_type_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:tensorflow.profiler.PodViewerDatabase.device_type)
}
inline std::string* PodViewerDatabase::mutable_device_type() {
  std::string* _s = _internal_mutable_device_type();
  // @@protoc_insertion_point(field_mutable:tensorflow.profiler.PodViewerDatabase.device_type)
  return _s;
}
inline const std::string& PodViewerDatabase::_internal_device_type() const {
  return device_type_.Get();
}
inline void PodViewerDatabase::_internal_set_device_type(const std::string& value) {
  
  device_type_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
}
inline std::string* PodViewerDatabase::_internal_mutable_device_type() {
  
  return device_type_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
}
inline std::string* PodViewerDatabase::release_device_type() {
  // @@protoc_insertion_point(field_release:tensorflow.profiler.PodViewerDatabase.device_type)
  return device_type_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
}
inline void PodViewerDatabase::set_allocated_device_type(std::string* device_type) {
  if (device_type != nullptr) {
    
  } else {
    
  }
  device_type_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), device_type,
      GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (device_type_.IsDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited())) {
    device_type_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:tensorflow.profiler.PodViewerDatabase.device_type)
}

// .tensorflow.profiler.PodStatsSequence pod_stats_sequence = 3;
inline bool PodViewerDatabase::_internal_has_pod_stats_sequence() const {
  return this != internal_default_instance() && pod_stats_sequence_ != nullptr;
}
inline bool PodViewerDatabase::has_pod_stats_sequence() const {
  return _internal_has_pod_stats_sequence();
}
inline void PodViewerDatabase::clear_pod_stats_sequence() {
  if (GetArenaForAllocation() == nullptr && pod_stats_sequence_ != nullptr) {
    delete pod_stats_sequence_;
  }
  pod_stats_sequence_ = nullptr;
}
inline const ::tensorflow::profiler::PodStatsSequence& PodViewerDatabase::_internal_pod_stats_sequence() const {
  const ::tensorflow::profiler::PodStatsSequence* p = pod_stats_sequence_;
  return p != nullptr ? *p : reinterpret_cast<const ::tensorflow::profiler::PodStatsSequence&>(
      ::tensorflow::profiler::_PodStatsSequence_default_instance_);
}
inline const ::tensorflow::profiler::PodStatsSequence& PodViewerDatabase::pod_stats_sequence() const {
  // @@protoc_insertion_point(field_get:tensorflow.profiler.PodViewerDatabase.pod_stats_sequence)
  return _internal_pod_stats_sequence();
}
inline void PodViewerDatabase::unsafe_arena_set_allocated_pod_stats_sequence(
    ::tensorflow::profiler::PodStatsSequence* pod_stats_sequence) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(pod_stats_sequence_);
  }
  pod_stats_sequence_ = pod_stats_sequence;
  if (pod_stats_sequence) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:tensorflow.profiler.PodViewerDatabase.pod_stats_sequence)
}
inline ::tensorflow::profiler::PodStatsSequence* PodViewerDatabase::release_pod_stats_sequence() {
  
  ::tensorflow::profiler::PodStatsSequence* temp = pod_stats_sequence_;
  pod_stats_sequence_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::tensorflow::profiler::PodStatsSequence* PodViewerDatabase::unsafe_arena_release_pod_stats_sequence() {
  // @@protoc_insertion_point(field_release:tensorflow.profiler.PodViewerDatabase.pod_stats_sequence)
  
  ::tensorflow::profiler::PodStatsSequence* temp = pod_stats_sequence_;
  pod_stats_sequence_ = nullptr;
  return temp;
}
inline ::tensorflow::profiler::PodStatsSequence* PodViewerDatabase::_internal_mutable_pod_stats_sequence() {
  
  if (pod_stats_sequence_ == nullptr) {
    auto* p = CreateMaybeMessage<::tensorflow::profiler::PodStatsSequence>(GetArenaForAllocation());
    pod_stats_sequence_ = p;
  }
  return pod_stats_sequence_;
}
inline ::tensorflow::profiler::PodStatsSequence* PodViewerDatabase::mutable_pod_stats_sequence() {
  ::tensorflow::profiler::PodStatsSequence* _msg = _internal_mutable_pod_stats_sequence();
  // @@protoc_insertion_point(field_mutable:tensorflow.profiler.PodViewerDatabase.pod_stats_sequence)
  return _msg;
}
inline void PodViewerDatabase::set_allocated_pod_stats_sequence(::tensorflow::profiler::PodStatsSequence* pod_stats_sequence) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete pod_stats_sequence_;
  }
  if (pod_stats_sequence) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::tensorflow::profiler::PodStatsSequence>::GetOwningArena(pod_stats_sequence);
    if (message_arena != submessage_arena) {
      pod_stats_sequence = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, pod_stats_sequence, submessage_arena);
    }
    
  } else {
    
  }
  pod_stats_sequence_ = pod_stats_sequence;
  // @@protoc_insertion_point(field_set_allocated:tensorflow.profiler.PodViewerDatabase.pod_stats_sequence)
}

// .tensorflow.profiler.PodViewerSummary summary = 7;
inline bool PodViewerDatabase::_internal_has_summary() const {
  return this != internal_default_instance() && summary_ != nullptr;
}
inline bool PodViewerDatabase::has_summary() const {
  return _internal_has_summary();
}
inline void PodViewerDatabase::clear_summary() {
  if (GetArenaForAllocation() == nullptr && summary_ != nullptr) {
    delete summary_;
  }
  summary_ = nullptr;
}
inline const ::tensorflow::profiler::PodViewerSummary& PodViewerDatabase::_internal_summary() const {
  const ::tensorflow::profiler::PodViewerSummary* p = summary_;
  return p != nullptr ? *p : reinterpret_cast<const ::tensorflow::profiler::PodViewerSummary&>(
      ::tensorflow::profiler::_PodViewerSummary_default_instance_);
}
inline const ::tensorflow::profiler::PodViewerSummary& PodViewerDatabase::summary() const {
  // @@protoc_insertion_point(field_get:tensorflow.profiler.PodViewerDatabase.summary)
  return _internal_summary();
}
inline void PodViewerDatabase::unsafe_arena_set_allocated_summary(
    ::tensorflow::profiler::PodViewerSummary* summary) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(summary_);
  }
  summary_ = summary;
  if (summary) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:tensorflow.profiler.PodViewerDatabase.summary)
}
inline ::tensorflow::profiler::PodViewerSummary* PodViewerDatabase::release_summary() {
  
  ::tensorflow::profiler::PodViewerSummary* temp = summary_;
  summary_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::tensorflow::profiler::PodViewerSummary* PodViewerDatabase::unsafe_arena_release_summary() {
  // @@protoc_insertion_point(field_release:tensorflow.profiler.PodViewerDatabase.summary)
  
  ::tensorflow::profiler::PodViewerSummary* temp = summary_;
  summary_ = nullptr;
  return temp;
}
inline ::tensorflow::profiler::PodViewerSummary* PodViewerDatabase::_internal_mutable_summary() {
  
  if (summary_ == nullptr) {
    auto* p = CreateMaybeMessage<::tensorflow::profiler::PodViewerSummary>(GetArenaForAllocation());
    summary_ = p;
  }
  return summary_;
}
inline ::tensorflow::profiler::PodViewerSummary* PodViewerDatabase::mutable_summary() {
  ::tensorflow::profiler::PodViewerSummary* _msg = _internal_mutable_summary();
  // @@protoc_insertion_point(field_mutable:tensorflow.profiler.PodViewerDatabase.summary)
  return _msg;
}
inline void PodViewerDatabase::set_allocated_summary(::tensorflow::profiler::PodViewerSummary* summary) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete summary_;
  }
  if (summary) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::tensorflow::profiler::PodViewerSummary>::GetOwningArena(summary);
    if (message_arena != submessage_arena) {
      summary = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, summary, submessage_arena);
    }
    
  } else {
    
  }
  summary_ = summary;
  // @@protoc_insertion_point(field_set_allocated:tensorflow.profiler.PodViewerDatabase.summary)
}

// .tensorflow.profiler.Diagnostics diagnostics = 8;
inline bool PodViewerDatabase::_internal_has_diagnostics() const {
  return this != internal_default_instance() && diagnostics_ != nullptr;
}
inline bool PodViewerDatabase::has_diagnostics() const {
  return _internal_has_diagnostics();
}
inline const ::tensorflow::profiler::Diagnostics& PodViewerDatabase::_internal_diagnostics() const {
  const ::tensorflow::profiler::Diagnostics* p = diagnostics_;
  return p != nullptr ? *p : reinterpret_cast<const ::tensorflow::profiler::Diagnostics&>(
      ::tensorflow::profiler::_Diagnostics_default_instance_);
}
inline const ::tensorflow::profiler::Diagnostics& PodViewerDatabase::diagnostics() const {
  // @@protoc_insertion_point(field_get:tensorflow.profiler.PodViewerDatabase.diagnostics)
  return _internal_diagnostics();
}
inline void PodViewerDatabase::unsafe_arena_set_allocated_diagnostics(
    ::tensorflow::profiler::Diagnostics* diagnostics) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(diagnostics_);
  }
  diagnostics_ = diagnostics;
  if (diagnostics) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:tensorflow.profiler.PodViewerDatabase.diagnostics)
}
inline ::tensorflow::profiler::Diagnostics* PodViewerDatabase::release_diagnostics() {
  
  ::tensorflow::profiler::Diagnostics* temp = diagnostics_;
  diagnostics_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::tensorflow::profiler::Diagnostics* PodViewerDatabase::unsafe_arena_release_diagnostics() {
  // @@protoc_insertion_point(field_release:tensorflow.profiler.PodViewerDatabase.diagnostics)
  
  ::tensorflow::profiler::Diagnostics* temp = diagnostics_;
  diagnostics_ = nullptr;
  return temp;
}
inline ::tensorflow::profiler::Diagnostics* PodViewerDatabase::_internal_mutable_diagnostics() {
  
  if (diagnostics_ == nullptr) {
    auto* p = CreateMaybeMessage<::tensorflow::profiler::Diagnostics>(GetArenaForAllocation());
    diagnostics_ = p;
  }
  return diagnostics_;
}
inline ::tensorflow::profiler::Diagnostics* PodViewerDatabase::mutable_diagnostics() {
  ::tensorflow::profiler::Diagnostics* _msg = _internal_mutable_diagnostics();
  // @@protoc_insertion_point(field_mutable:tensorflow.profiler.PodViewerDatabase.diagnostics)
  return _msg;
}
inline void PodViewerDatabase::set_allocated_diagnostics(::tensorflow::profiler::Diagnostics* diagnostics) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(diagnostics_);
  }
  if (diagnostics) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<
            ::PROTOBUF_NAMESPACE_ID::MessageLite>::GetOwningArena(
                reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(diagnostics));
    if (message_arena != submessage_arena) {
      diagnostics = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, diagnostics, submessage_arena);
    }
    
  } else {
    
  }
  diagnostics_ = diagnostics;
  // @@protoc_insertion_point(field_set_allocated:tensorflow.profiler.PodViewerDatabase.diagnostics)
}

// repeated .tensorflow.profiler.StepBreakdownEvents step_breakdown_events = 9;
inline int PodViewerDatabase::_internal_step_breakdown_events_size() const {
  return step_breakdown_events_.size();
}
inline int PodViewerDatabase::step_breakdown_events_size() const {
  return _internal_step_breakdown_events_size();
}
inline ::tensorflow::profiler::StepBreakdownEvents* PodViewerDatabase::mutable_step_breakdown_events(int index) {
  // @@protoc_insertion_point(field_mutable:tensorflow.profiler.PodViewerDatabase.step_breakdown_events)
  return step_breakdown_events_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::tensorflow::profiler::StepBreakdownEvents >*
PodViewerDatabase::mutable_step_breakdown_events() {
  // @@protoc_insertion_point(field_mutable_list:tensorflow.profiler.PodViewerDatabase.step_breakdown_events)
  return &step_breakdown_events_;
}
inline const ::tensorflow::profiler::StepBreakdownEvents& PodViewerDatabase::_internal_step_breakdown_events(int index) const {
  return step_breakdown_events_.Get(index);
}
inline const ::tensorflow::profiler::StepBreakdownEvents& PodViewerDatabase::step_breakdown_events(int index) const {
  // @@protoc_insertion_point(field_get:tensorflow.profiler.PodViewerDatabase.step_breakdown_events)
  return _internal_step_breakdown_events(index);
}
inline ::tensorflow::profiler::StepBreakdownEvents* PodViewerDatabase::_internal_add_step_breakdown_events() {
  return step_breakdown_events_.Add();
}
inline ::tensorflow::profiler::StepBreakdownEvents* PodViewerDatabase::add_step_breakdown_events() {
  ::tensorflow::profiler::StepBreakdownEvents* _add = _internal_add_step_breakdown_events();
  // @@protoc_insertion_point(field_add:tensorflow.profiler.PodViewerDatabase.step_breakdown_events)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::tensorflow::profiler::StepBreakdownEvents >&
PodViewerDatabase::step_breakdown_events() const {
  // @@protoc_insertion_point(field_list:tensorflow.profiler.PodViewerDatabase.step_breakdown_events)
  return step_breakdown_events_;
}

// .tensorflow.profiler.PodViewerTopology topology = 11;
inline bool PodViewerDatabase::_internal_has_topology() const {
  return this != internal_default_instance() && topology_ != nullptr;
}
inline bool PodViewerDatabase::has_topology() const {
  return _internal_has_topology();
}
inline void PodViewerDatabase::clear_topology() {
  if (GetArenaForAllocation() == nullptr && topology_ != nullptr) {
    delete topology_;
  }
  topology_ = nullptr;
}
inline const ::tensorflow::profiler::PodViewerTopology& PodViewerDatabase::_internal_topology() const {
  const ::tensorflow::profiler::PodViewerTopology* p = topology_;
  return p != nullptr ? *p : reinterpret_cast<const ::tensorflow::profiler::PodViewerTopology&>(
      ::tensorflow::profiler::_PodViewerTopology_default_instance_);
}
inline const ::tensorflow::profiler::PodViewerTopology& PodViewerDatabase::topology() const {
  // @@protoc_insertion_point(field_get:tensorflow.profiler.PodViewerDatabase.topology)
  return _internal_topology();
}
inline void PodViewerDatabase::unsafe_arena_set_allocated_topology(
    ::tensorflow::profiler::PodViewerTopology* topology) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(topology_);
  }
  topology_ = topology;
  if (topology) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:tensorflow.profiler.PodViewerDatabase.topology)
}
inline ::tensorflow::profiler::PodViewerTopology* PodViewerDatabase::release_topology() {
  
  ::tensorflow::profiler::PodViewerTopology* temp = topology_;
  topology_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::tensorflow::profiler::PodViewerTopology* PodViewerDatabase::unsafe_arena_release_topology() {
  // @@protoc_insertion_point(field_release:tensorflow.profiler.PodViewerDatabase.topology)
  
  ::tensorflow::profiler::PodViewerTopology* temp = topology_;
  topology_ = nullptr;
  return temp;
}
inline ::tensorflow::profiler::PodViewerTopology* PodViewerDatabase::_internal_mutable_topology() {
  
  if (topology_ == nullptr) {
    auto* p = CreateMaybeMessage<::tensorflow::profiler::PodViewerTopology>(GetArenaForAllocation());
    topology_ = p;
  }
  return topology_;
}
inline ::tensorflow::profiler::PodViewerTopology* PodViewerDatabase::mutable_topology() {
  ::tensorflow::profiler::PodViewerTopology* _msg = _internal_mutable_topology();
  // @@protoc_insertion_point(field_mutable:tensorflow.profiler.PodViewerDatabase.topology)
  return _msg;
}
inline void PodViewerDatabase::set_allocated_topology(::tensorflow::profiler::PodViewerTopology* topology) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete topology_;
  }
  if (topology) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::tensorflow::profiler::PodViewerTopology>::GetOwningArena(topology);
    if (message_arena != submessage_arena) {
      topology = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, topology, submessage_arena);
    }
    
  } else {
    
  }
  topology_ = topology;
  // @@protoc_insertion_point(field_set_allocated:tensorflow.profiler.PodViewerDatabase.topology)
}

#ifdef __GNUC__
  #pragma GCC diagnostic pop
#endif  // __GNUC__
// -------------------------------------------------------------------

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

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

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

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

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

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

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

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


// @@protoc_insertion_point(namespace_scope)

}  // namespace profiler
}  // namespace tensorflow

// @@protoc_insertion_point(global_scope)

#include <google/protobuf/port_undef.inc>
#endif  // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_tensorflow_2fcore_2fprofiler_2fprotobuf_2fpod_5fviewer_2eproto
