// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: tensorflow/core/framework/step_stats.proto

#ifndef PROTOBUF_tensorflow_2fcore_2fframework_2fstep_5fstats_2eproto__INCLUDED
#define PROTOBUF_tensorflow_2fcore_2fframework_2fstep_5fstats_2eproto__INCLUDED

#include <string>

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

#if GOOGLE_PROTOBUF_VERSION < 3001000
#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 3001000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please
#error regenerate this file with a newer version of protoc.
#endif

#include <google/protobuf/arena.h>
#include <google/protobuf/arenastring.h>
#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/metadata.h>
#include <google/protobuf/message.h>
#include <google/protobuf/repeated_field.h>
#include <google/protobuf/extension_set.h>
#include <google/protobuf/unknown_field_set.h>
#include "tensorflow/core/framework/allocation_description.pb.h"
#include "tensorflow/core/framework/tensor_description.pb.h"
// @@protoc_insertion_point(includes)

namespace tensorflow {

// Internal implementation detail -- do not call these.
void protobuf_AddDesc_tensorflow_2fcore_2fframework_2fstep_5fstats_2eproto();
void protobuf_InitDefaults_tensorflow_2fcore_2fframework_2fstep_5fstats_2eproto();
void protobuf_AssignDesc_tensorflow_2fcore_2fframework_2fstep_5fstats_2eproto();
void protobuf_ShutdownFile_tensorflow_2fcore_2fframework_2fstep_5fstats_2eproto();

class AllocatorMemoryUsed;
class DeviceStepStats;
class NodeExecStats;
class NodeOutput;
class StepStats;

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

class AllocatorMemoryUsed : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:tensorflow.AllocatorMemoryUsed) */ {
 public:
  AllocatorMemoryUsed();
  virtual ~AllocatorMemoryUsed();

  AllocatorMemoryUsed(const AllocatorMemoryUsed& from);

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

  inline ::google::protobuf::Arena* GetArena() const { return GetArenaNoVirtual(); }
  inline void* GetMaybeArenaPointer() const {
    return MaybeArenaPtr();
  }
  static const ::google::protobuf::Descriptor* descriptor();
  static const AllocatorMemoryUsed& default_instance();

  static const AllocatorMemoryUsed* internal_default_instance();

  void UnsafeArenaSwap(AllocatorMemoryUsed* other);
  void Swap(AllocatorMemoryUsed* other);

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

  inline AllocatorMemoryUsed* New() const { return New(NULL); }

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

  size_t ByteSizeLong() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const {
    return InternalSerializeWithCachedSizesToArray(false, output);
  }
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(AllocatorMemoryUsed* other);
  void UnsafeMergeFrom(const AllocatorMemoryUsed& from);
  protected:
  explicit AllocatorMemoryUsed(::google::protobuf::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::google::protobuf::Arena* arena);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return _internal_metadata_.arena();
  }
  inline void* MaybeArenaPtr() const {
    return _internal_metadata_.raw_arena_ptr();
  }
  public:

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

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

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

  // optional string allocator_name = 1;
  void clear_allocator_name();
  static const int kAllocatorNameFieldNumber = 1;
  const ::std::string& allocator_name() const;
  void set_allocator_name(const ::std::string& value);
  void set_allocator_name(const char* value);
  void set_allocator_name(const char* value, size_t size);
  ::std::string* mutable_allocator_name();
  ::std::string* release_allocator_name();
  void set_allocated_allocator_name(::std::string* allocator_name);
  ::std::string* unsafe_arena_release_allocator_name();
  void unsafe_arena_set_allocated_allocator_name(
      ::std::string* allocator_name);

  // optional int64 total_bytes = 2;
  void clear_total_bytes();
  static const int kTotalBytesFieldNumber = 2;
  ::google::protobuf::int64 total_bytes() const;
  void set_total_bytes(::google::protobuf::int64 value);

  // optional int64 peak_bytes = 3;
  void clear_peak_bytes();
  static const int kPeakBytesFieldNumber = 3;
  ::google::protobuf::int64 peak_bytes() const;
  void set_peak_bytes(::google::protobuf::int64 value);

  // @@protoc_insertion_point(class_scope:tensorflow.AllocatorMemoryUsed)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  friend class ::google::protobuf::Arena;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::google::protobuf::internal::ArenaStringPtr allocator_name_;
  ::google::protobuf::int64 total_bytes_;
  ::google::protobuf::int64 peak_bytes_;
  mutable int _cached_size_;
  friend void  protobuf_InitDefaults_tensorflow_2fcore_2fframework_2fstep_5fstats_2eproto_impl();
  friend void  protobuf_AddDesc_tensorflow_2fcore_2fframework_2fstep_5fstats_2eproto_impl();
  friend void protobuf_AssignDesc_tensorflow_2fcore_2fframework_2fstep_5fstats_2eproto();
  friend void protobuf_ShutdownFile_tensorflow_2fcore_2fframework_2fstep_5fstats_2eproto();

  void InitAsDefaultInstance();
};
extern ::google::protobuf::internal::ExplicitlyConstructed<AllocatorMemoryUsed> AllocatorMemoryUsed_default_instance_;

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

class NodeOutput : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:tensorflow.NodeOutput) */ {
 public:
  NodeOutput();
  virtual ~NodeOutput();

  NodeOutput(const NodeOutput& from);

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

  inline ::google::protobuf::Arena* GetArena() const { return GetArenaNoVirtual(); }
  inline void* GetMaybeArenaPointer() const {
    return MaybeArenaPtr();
  }
  static const ::google::protobuf::Descriptor* descriptor();
  static const NodeOutput& default_instance();

  static const NodeOutput* internal_default_instance();

  void UnsafeArenaSwap(NodeOutput* other);
  void Swap(NodeOutput* other);

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

  inline NodeOutput* New() const { return New(NULL); }

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

  size_t ByteSizeLong() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const {
    return InternalSerializeWithCachedSizesToArray(false, output);
  }
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(NodeOutput* other);
  void UnsafeMergeFrom(const NodeOutput& from);
  protected:
  explicit NodeOutput(::google::protobuf::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::google::protobuf::Arena* arena);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return _internal_metadata_.arena();
  }
  inline void* MaybeArenaPtr() const {
    return _internal_metadata_.raw_arena_ptr();
  }
  public:

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

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

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

  // optional int32 slot = 1;
  void clear_slot();
  static const int kSlotFieldNumber = 1;
  ::google::protobuf::int32 slot() const;
  void set_slot(::google::protobuf::int32 value);

  // optional .tensorflow.TensorDescription tensor_description = 3;
  bool has_tensor_description() const;
  void clear_tensor_description();
  static const int kTensorDescriptionFieldNumber = 3;
  private:
  void _slow_mutable_tensor_description();
  void _slow_set_allocated_tensor_description(
      ::google::protobuf::Arena* message_arena, ::tensorflow::TensorDescription** tensor_description);
  ::tensorflow::TensorDescription* _slow_release_tensor_description();
  public:
  const ::tensorflow::TensorDescription& tensor_description() const;
  ::tensorflow::TensorDescription* mutable_tensor_description();
  ::tensorflow::TensorDescription* release_tensor_description();
  void set_allocated_tensor_description(::tensorflow::TensorDescription* tensor_description);
  ::tensorflow::TensorDescription* unsafe_arena_release_tensor_description();
  void unsafe_arena_set_allocated_tensor_description(
      ::tensorflow::TensorDescription* tensor_description);

  // @@protoc_insertion_point(class_scope:tensorflow.NodeOutput)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  friend class ::google::protobuf::Arena;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::tensorflow::TensorDescription* tensor_description_;
  ::google::protobuf::int32 slot_;
  mutable int _cached_size_;
  friend void  protobuf_InitDefaults_tensorflow_2fcore_2fframework_2fstep_5fstats_2eproto_impl();
  friend void  protobuf_AddDesc_tensorflow_2fcore_2fframework_2fstep_5fstats_2eproto_impl();
  friend void protobuf_AssignDesc_tensorflow_2fcore_2fframework_2fstep_5fstats_2eproto();
  friend void protobuf_ShutdownFile_tensorflow_2fcore_2fframework_2fstep_5fstats_2eproto();

  void InitAsDefaultInstance();
};
extern ::google::protobuf::internal::ExplicitlyConstructed<NodeOutput> NodeOutput_default_instance_;

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

class NodeExecStats : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:tensorflow.NodeExecStats) */ {
 public:
  NodeExecStats();
  virtual ~NodeExecStats();

  NodeExecStats(const NodeExecStats& from);

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

  inline ::google::protobuf::Arena* GetArena() const { return GetArenaNoVirtual(); }
  inline void* GetMaybeArenaPointer() const {
    return MaybeArenaPtr();
  }
  static const ::google::protobuf::Descriptor* descriptor();
  static const NodeExecStats& default_instance();

  static const NodeExecStats* internal_default_instance();

  void UnsafeArenaSwap(NodeExecStats* other);
  void Swap(NodeExecStats* other);

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

  inline NodeExecStats* New() const { return New(NULL); }

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

  size_t ByteSizeLong() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const {
    return InternalSerializeWithCachedSizesToArray(false, output);
  }
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(NodeExecStats* other);
  void UnsafeMergeFrom(const NodeExecStats& from);
  protected:
  explicit NodeExecStats(::google::protobuf::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::google::protobuf::Arena* arena);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return _internal_metadata_.arena();
  }
  inline void* MaybeArenaPtr() const {
    return _internal_metadata_.raw_arena_ptr();
  }
  public:

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

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

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

  // optional string node_name = 1;
  void clear_node_name();
  static const int kNodeNameFieldNumber = 1;
  const ::std::string& node_name() const;
  void set_node_name(const ::std::string& value);
  void set_node_name(const char* value);
  void set_node_name(const char* value, size_t size);
  ::std::string* mutable_node_name();
  ::std::string* release_node_name();
  void set_allocated_node_name(::std::string* node_name);
  ::std::string* unsafe_arena_release_node_name();
  void unsafe_arena_set_allocated_node_name(
      ::std::string* node_name);

  // optional int64 all_start_micros = 2;
  void clear_all_start_micros();
  static const int kAllStartMicrosFieldNumber = 2;
  ::google::protobuf::int64 all_start_micros() const;
  void set_all_start_micros(::google::protobuf::int64 value);

  // optional int64 op_start_rel_micros = 3;
  void clear_op_start_rel_micros();
  static const int kOpStartRelMicrosFieldNumber = 3;
  ::google::protobuf::int64 op_start_rel_micros() const;
  void set_op_start_rel_micros(::google::protobuf::int64 value);

  // optional int64 op_end_rel_micros = 4;
  void clear_op_end_rel_micros();
  static const int kOpEndRelMicrosFieldNumber = 4;
  ::google::protobuf::int64 op_end_rel_micros() const;
  void set_op_end_rel_micros(::google::protobuf::int64 value);

  // optional int64 all_end_rel_micros = 5;
  void clear_all_end_rel_micros();
  static const int kAllEndRelMicrosFieldNumber = 5;
  ::google::protobuf::int64 all_end_rel_micros() const;
  void set_all_end_rel_micros(::google::protobuf::int64 value);

  // repeated .tensorflow.AllocatorMemoryUsed memory = 6;
  int memory_size() const;
  void clear_memory();
  static const int kMemoryFieldNumber = 6;
  const ::tensorflow::AllocatorMemoryUsed& memory(int index) const;
  ::tensorflow::AllocatorMemoryUsed* mutable_memory(int index);
  ::tensorflow::AllocatorMemoryUsed* add_memory();
  ::google::protobuf::RepeatedPtrField< ::tensorflow::AllocatorMemoryUsed >*
      mutable_memory();
  const ::google::protobuf::RepeatedPtrField< ::tensorflow::AllocatorMemoryUsed >&
      memory() const;

  // repeated .tensorflow.NodeOutput output = 7;
  int output_size() const;
  void clear_output();
  static const int kOutputFieldNumber = 7;
  const ::tensorflow::NodeOutput& output(int index) const;
  ::tensorflow::NodeOutput* mutable_output(int index);
  ::tensorflow::NodeOutput* add_output();
  ::google::protobuf::RepeatedPtrField< ::tensorflow::NodeOutput >*
      mutable_output();
  const ::google::protobuf::RepeatedPtrField< ::tensorflow::NodeOutput >&
      output() const;

  // optional string timeline_label = 8;
  void clear_timeline_label();
  static const int kTimelineLabelFieldNumber = 8;
  const ::std::string& timeline_label() const;
  void set_timeline_label(const ::std::string& value);
  void set_timeline_label(const char* value);
  void set_timeline_label(const char* value, size_t size);
  ::std::string* mutable_timeline_label();
  ::std::string* release_timeline_label();
  void set_allocated_timeline_label(::std::string* timeline_label);
  ::std::string* unsafe_arena_release_timeline_label();
  void unsafe_arena_set_allocated_timeline_label(
      ::std::string* timeline_label);

  // optional int64 scheduled_micros = 9;
  void clear_scheduled_micros();
  static const int kScheduledMicrosFieldNumber = 9;
  ::google::protobuf::int64 scheduled_micros() const;
  void set_scheduled_micros(::google::protobuf::int64 value);

  // optional uint32 thread_id = 10;
  void clear_thread_id();
  static const int kThreadIdFieldNumber = 10;
  ::google::protobuf::uint32 thread_id() const;
  void set_thread_id(::google::protobuf::uint32 value);

  // repeated .tensorflow.AllocationDescription referenced_tensor = 11;
  int referenced_tensor_size() const;
  void clear_referenced_tensor();
  static const int kReferencedTensorFieldNumber = 11;
  const ::tensorflow::AllocationDescription& referenced_tensor(int index) const;
  ::tensorflow::AllocationDescription* mutable_referenced_tensor(int index);
  ::tensorflow::AllocationDescription* add_referenced_tensor();
  ::google::protobuf::RepeatedPtrField< ::tensorflow::AllocationDescription >*
      mutable_referenced_tensor();
  const ::google::protobuf::RepeatedPtrField< ::tensorflow::AllocationDescription >&
      referenced_tensor() const;

  // @@protoc_insertion_point(class_scope:tensorflow.NodeExecStats)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  friend class ::google::protobuf::Arena;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::google::protobuf::RepeatedPtrField< ::tensorflow::AllocatorMemoryUsed > memory_;
  ::google::protobuf::RepeatedPtrField< ::tensorflow::NodeOutput > output_;
  ::google::protobuf::RepeatedPtrField< ::tensorflow::AllocationDescription > referenced_tensor_;
  ::google::protobuf::internal::ArenaStringPtr node_name_;
  ::google::protobuf::internal::ArenaStringPtr timeline_label_;
  ::google::protobuf::int64 all_start_micros_;
  ::google::protobuf::int64 op_start_rel_micros_;
  ::google::protobuf::int64 op_end_rel_micros_;
  ::google::protobuf::int64 all_end_rel_micros_;
  ::google::protobuf::int64 scheduled_micros_;
  ::google::protobuf::uint32 thread_id_;
  mutable int _cached_size_;
  friend void  protobuf_InitDefaults_tensorflow_2fcore_2fframework_2fstep_5fstats_2eproto_impl();
  friend void  protobuf_AddDesc_tensorflow_2fcore_2fframework_2fstep_5fstats_2eproto_impl();
  friend void protobuf_AssignDesc_tensorflow_2fcore_2fframework_2fstep_5fstats_2eproto();
  friend void protobuf_ShutdownFile_tensorflow_2fcore_2fframework_2fstep_5fstats_2eproto();

  void InitAsDefaultInstance();
};
extern ::google::protobuf::internal::ExplicitlyConstructed<NodeExecStats> NodeExecStats_default_instance_;

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

class DeviceStepStats : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:tensorflow.DeviceStepStats) */ {
 public:
  DeviceStepStats();
  virtual ~DeviceStepStats();

  DeviceStepStats(const DeviceStepStats& from);

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

  inline ::google::protobuf::Arena* GetArena() const { return GetArenaNoVirtual(); }
  inline void* GetMaybeArenaPointer() const {
    return MaybeArenaPtr();
  }
  static const ::google::protobuf::Descriptor* descriptor();
  static const DeviceStepStats& default_instance();

  static const DeviceStepStats* internal_default_instance();

  void UnsafeArenaSwap(DeviceStepStats* other);
  void Swap(DeviceStepStats* other);

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

  inline DeviceStepStats* New() const { return New(NULL); }

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

  size_t ByteSizeLong() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const {
    return InternalSerializeWithCachedSizesToArray(false, output);
  }
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(DeviceStepStats* other);
  void UnsafeMergeFrom(const DeviceStepStats& from);
  protected:
  explicit DeviceStepStats(::google::protobuf::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::google::protobuf::Arena* arena);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return _internal_metadata_.arena();
  }
  inline void* MaybeArenaPtr() const {
    return _internal_metadata_.raw_arena_ptr();
  }
  public:

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

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

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

  // optional string device = 1;
  void clear_device();
  static const int kDeviceFieldNumber = 1;
  const ::std::string& device() const;
  void set_device(const ::std::string& value);
  void set_device(const char* value);
  void set_device(const char* value, size_t size);
  ::std::string* mutable_device();
  ::std::string* release_device();
  void set_allocated_device(::std::string* device);
  ::std::string* unsafe_arena_release_device();
  void unsafe_arena_set_allocated_device(
      ::std::string* device);

  // repeated .tensorflow.NodeExecStats node_stats = 2;
  int node_stats_size() const;
  void clear_node_stats();
  static const int kNodeStatsFieldNumber = 2;
  const ::tensorflow::NodeExecStats& node_stats(int index) const;
  ::tensorflow::NodeExecStats* mutable_node_stats(int index);
  ::tensorflow::NodeExecStats* add_node_stats();
  ::google::protobuf::RepeatedPtrField< ::tensorflow::NodeExecStats >*
      mutable_node_stats();
  const ::google::protobuf::RepeatedPtrField< ::tensorflow::NodeExecStats >&
      node_stats() const;

  // @@protoc_insertion_point(class_scope:tensorflow.DeviceStepStats)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  friend class ::google::protobuf::Arena;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::google::protobuf::RepeatedPtrField< ::tensorflow::NodeExecStats > node_stats_;
  ::google::protobuf::internal::ArenaStringPtr device_;
  mutable int _cached_size_;
  friend void  protobuf_InitDefaults_tensorflow_2fcore_2fframework_2fstep_5fstats_2eproto_impl();
  friend void  protobuf_AddDesc_tensorflow_2fcore_2fframework_2fstep_5fstats_2eproto_impl();
  friend void protobuf_AssignDesc_tensorflow_2fcore_2fframework_2fstep_5fstats_2eproto();
  friend void protobuf_ShutdownFile_tensorflow_2fcore_2fframework_2fstep_5fstats_2eproto();

  void InitAsDefaultInstance();
};
extern ::google::protobuf::internal::ExplicitlyConstructed<DeviceStepStats> DeviceStepStats_default_instance_;

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

class StepStats : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:tensorflow.StepStats) */ {
 public:
  StepStats();
  virtual ~StepStats();

  StepStats(const StepStats& from);

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

  inline ::google::protobuf::Arena* GetArena() const { return GetArenaNoVirtual(); }
  inline void* GetMaybeArenaPointer() const {
    return MaybeArenaPtr();
  }
  static const ::google::protobuf::Descriptor* descriptor();
  static const StepStats& default_instance();

  static const StepStats* internal_default_instance();

  void UnsafeArenaSwap(StepStats* other);
  void Swap(StepStats* other);

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

  inline StepStats* New() const { return New(NULL); }

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

  size_t ByteSizeLong() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const {
    return InternalSerializeWithCachedSizesToArray(false, output);
  }
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(StepStats* other);
  void UnsafeMergeFrom(const StepStats& from);
  protected:
  explicit StepStats(::google::protobuf::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::google::protobuf::Arena* arena);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return _internal_metadata_.arena();
  }
  inline void* MaybeArenaPtr() const {
    return _internal_metadata_.raw_arena_ptr();
  }
  public:

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

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

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

  // repeated .tensorflow.DeviceStepStats dev_stats = 1;
  int dev_stats_size() const;
  void clear_dev_stats();
  static const int kDevStatsFieldNumber = 1;
  const ::tensorflow::DeviceStepStats& dev_stats(int index) const;
  ::tensorflow::DeviceStepStats* mutable_dev_stats(int index);
  ::tensorflow::DeviceStepStats* add_dev_stats();
  ::google::protobuf::RepeatedPtrField< ::tensorflow::DeviceStepStats >*
      mutable_dev_stats();
  const ::google::protobuf::RepeatedPtrField< ::tensorflow::DeviceStepStats >&
      dev_stats() const;

  // @@protoc_insertion_point(class_scope:tensorflow.StepStats)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  friend class ::google::protobuf::Arena;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::google::protobuf::RepeatedPtrField< ::tensorflow::DeviceStepStats > dev_stats_;
  mutable int _cached_size_;
  friend void  protobuf_InitDefaults_tensorflow_2fcore_2fframework_2fstep_5fstats_2eproto_impl();
  friend void  protobuf_AddDesc_tensorflow_2fcore_2fframework_2fstep_5fstats_2eproto_impl();
  friend void protobuf_AssignDesc_tensorflow_2fcore_2fframework_2fstep_5fstats_2eproto();
  friend void protobuf_ShutdownFile_tensorflow_2fcore_2fframework_2fstep_5fstats_2eproto();

  void InitAsDefaultInstance();
};
extern ::google::protobuf::internal::ExplicitlyConstructed<StepStats> StepStats_default_instance_;

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


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

#if !PROTOBUF_INLINE_NOT_IN_HEADERS
// AllocatorMemoryUsed

// optional string allocator_name = 1;
inline void AllocatorMemoryUsed::clear_allocator_name() {
  allocator_name_.ClearToEmpty(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline const ::std::string& AllocatorMemoryUsed::allocator_name() const {
  // @@protoc_insertion_point(field_get:tensorflow.AllocatorMemoryUsed.allocator_name)
  return allocator_name_.Get(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void AllocatorMemoryUsed::set_allocator_name(const ::std::string& value) {
  
  allocator_name_.Set(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value, GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set:tensorflow.AllocatorMemoryUsed.allocator_name)
}
inline void AllocatorMemoryUsed::set_allocator_name(const char* value) {
  
  allocator_name_.Set(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_char:tensorflow.AllocatorMemoryUsed.allocator_name)
}
inline void AllocatorMemoryUsed::set_allocator_name(const char* value,
    size_t size) {
  
  allocator_name_.Set(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_pointer:tensorflow.AllocatorMemoryUsed.allocator_name)
}
inline ::std::string* AllocatorMemoryUsed::mutable_allocator_name() {
  
  // @@protoc_insertion_point(field_mutable:tensorflow.AllocatorMemoryUsed.allocator_name)
  return allocator_name_.Mutable(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline ::std::string* AllocatorMemoryUsed::release_allocator_name() {
  // @@protoc_insertion_point(field_release:tensorflow.AllocatorMemoryUsed.allocator_name)
  
  return allocator_name_.Release(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline ::std::string* AllocatorMemoryUsed::unsafe_arena_release_allocator_name() {
  // @@protoc_insertion_point(field_unsafe_arena_release:tensorflow.AllocatorMemoryUsed.allocator_name)
  GOOGLE_DCHECK(GetArenaNoVirtual() != NULL);
  
  return allocator_name_.UnsafeArenaRelease(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      GetArenaNoVirtual());
}
inline void AllocatorMemoryUsed::set_allocated_allocator_name(::std::string* allocator_name) {
  if (allocator_name != NULL) {
    
  } else {
    
  }
  allocator_name_.SetAllocated(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), allocator_name,
      GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_allocated:tensorflow.AllocatorMemoryUsed.allocator_name)
}
inline void AllocatorMemoryUsed::unsafe_arena_set_allocated_allocator_name(
    ::std::string* allocator_name) {
  GOOGLE_DCHECK(GetArenaNoVirtual() != NULL);
  if (allocator_name != NULL) {
    
  } else {
    
  }
  allocator_name_.UnsafeArenaSetAllocated(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      allocator_name, GetArenaNoVirtual());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:tensorflow.AllocatorMemoryUsed.allocator_name)
}

// optional int64 total_bytes = 2;
inline void AllocatorMemoryUsed::clear_total_bytes() {
  total_bytes_ = GOOGLE_LONGLONG(0);
}
inline ::google::protobuf::int64 AllocatorMemoryUsed::total_bytes() const {
  // @@protoc_insertion_point(field_get:tensorflow.AllocatorMemoryUsed.total_bytes)
  return total_bytes_;
}
inline void AllocatorMemoryUsed::set_total_bytes(::google::protobuf::int64 value) {
  
  total_bytes_ = value;
  // @@protoc_insertion_point(field_set:tensorflow.AllocatorMemoryUsed.total_bytes)
}

// optional int64 peak_bytes = 3;
inline void AllocatorMemoryUsed::clear_peak_bytes() {
  peak_bytes_ = GOOGLE_LONGLONG(0);
}
inline ::google::protobuf::int64 AllocatorMemoryUsed::peak_bytes() const {
  // @@protoc_insertion_point(field_get:tensorflow.AllocatorMemoryUsed.peak_bytes)
  return peak_bytes_;
}
inline void AllocatorMemoryUsed::set_peak_bytes(::google::protobuf::int64 value) {
  
  peak_bytes_ = value;
  // @@protoc_insertion_point(field_set:tensorflow.AllocatorMemoryUsed.peak_bytes)
}

inline const AllocatorMemoryUsed* AllocatorMemoryUsed::internal_default_instance() {
  return &AllocatorMemoryUsed_default_instance_.get();
}
// -------------------------------------------------------------------

// NodeOutput

// optional int32 slot = 1;
inline void NodeOutput::clear_slot() {
  slot_ = 0;
}
inline ::google::protobuf::int32 NodeOutput::slot() const {
  // @@protoc_insertion_point(field_get:tensorflow.NodeOutput.slot)
  return slot_;
}
inline void NodeOutput::set_slot(::google::protobuf::int32 value) {
  
  slot_ = value;
  // @@protoc_insertion_point(field_set:tensorflow.NodeOutput.slot)
}

// optional .tensorflow.TensorDescription tensor_description = 3;
inline bool NodeOutput::has_tensor_description() const {
  return this != internal_default_instance() && tensor_description_ != NULL;
}
inline void NodeOutput::clear_tensor_description() {
  if (GetArenaNoVirtual() == NULL && tensor_description_ != NULL) delete tensor_description_;
  tensor_description_ = NULL;
}
inline const ::tensorflow::TensorDescription& NodeOutput::tensor_description() const {
  // @@protoc_insertion_point(field_get:tensorflow.NodeOutput.tensor_description)
  return tensor_description_ != NULL ? *tensor_description_
                         : *::tensorflow::TensorDescription::internal_default_instance();
}
inline ::tensorflow::TensorDescription* NodeOutput::mutable_tensor_description() {
  
  if (tensor_description_ == NULL) {
    _slow_mutable_tensor_description();
  }
  // @@protoc_insertion_point(field_mutable:tensorflow.NodeOutput.tensor_description)
  return tensor_description_;
}
inline ::tensorflow::TensorDescription* NodeOutput::release_tensor_description() {
  // @@protoc_insertion_point(field_release:tensorflow.NodeOutput.tensor_description)
  
  if (GetArenaNoVirtual() != NULL) {
    return _slow_release_tensor_description();
  } else {
    ::tensorflow::TensorDescription* temp = tensor_description_;
    tensor_description_ = NULL;
    return temp;
  }
}
inline  void NodeOutput::set_allocated_tensor_description(::tensorflow::TensorDescription* tensor_description) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete tensor_description_;
  }
  if (tensor_description != NULL) {
    _slow_set_allocated_tensor_description(message_arena, &tensor_description);
  }
  tensor_description_ = tensor_description;
  if (tensor_description) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_set_allocated:tensorflow.NodeOutput.tensor_description)
}

inline const NodeOutput* NodeOutput::internal_default_instance() {
  return &NodeOutput_default_instance_.get();
}
// -------------------------------------------------------------------

// NodeExecStats

// optional string node_name = 1;
inline void NodeExecStats::clear_node_name() {
  node_name_.ClearToEmpty(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline const ::std::string& NodeExecStats::node_name() const {
  // @@protoc_insertion_point(field_get:tensorflow.NodeExecStats.node_name)
  return node_name_.Get(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void NodeExecStats::set_node_name(const ::std::string& value) {
  
  node_name_.Set(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value, GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set:tensorflow.NodeExecStats.node_name)
}
inline void NodeExecStats::set_node_name(const char* value) {
  
  node_name_.Set(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_char:tensorflow.NodeExecStats.node_name)
}
inline void NodeExecStats::set_node_name(const char* value,
    size_t size) {
  
  node_name_.Set(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_pointer:tensorflow.NodeExecStats.node_name)
}
inline ::std::string* NodeExecStats::mutable_node_name() {
  
  // @@protoc_insertion_point(field_mutable:tensorflow.NodeExecStats.node_name)
  return node_name_.Mutable(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline ::std::string* NodeExecStats::release_node_name() {
  // @@protoc_insertion_point(field_release:tensorflow.NodeExecStats.node_name)
  
  return node_name_.Release(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline ::std::string* NodeExecStats::unsafe_arena_release_node_name() {
  // @@protoc_insertion_point(field_unsafe_arena_release:tensorflow.NodeExecStats.node_name)
  GOOGLE_DCHECK(GetArenaNoVirtual() != NULL);
  
  return node_name_.UnsafeArenaRelease(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      GetArenaNoVirtual());
}
inline void NodeExecStats::set_allocated_node_name(::std::string* node_name) {
  if (node_name != NULL) {
    
  } else {
    
  }
  node_name_.SetAllocated(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), node_name,
      GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_allocated:tensorflow.NodeExecStats.node_name)
}
inline void NodeExecStats::unsafe_arena_set_allocated_node_name(
    ::std::string* node_name) {
  GOOGLE_DCHECK(GetArenaNoVirtual() != NULL);
  if (node_name != NULL) {
    
  } else {
    
  }
  node_name_.UnsafeArenaSetAllocated(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      node_name, GetArenaNoVirtual());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:tensorflow.NodeExecStats.node_name)
}

// optional int64 all_start_micros = 2;
inline void NodeExecStats::clear_all_start_micros() {
  all_start_micros_ = GOOGLE_LONGLONG(0);
}
inline ::google::protobuf::int64 NodeExecStats::all_start_micros() const {
  // @@protoc_insertion_point(field_get:tensorflow.NodeExecStats.all_start_micros)
  return all_start_micros_;
}
inline void NodeExecStats::set_all_start_micros(::google::protobuf::int64 value) {
  
  all_start_micros_ = value;
  // @@protoc_insertion_point(field_set:tensorflow.NodeExecStats.all_start_micros)
}

// optional int64 op_start_rel_micros = 3;
inline void NodeExecStats::clear_op_start_rel_micros() {
  op_start_rel_micros_ = GOOGLE_LONGLONG(0);
}
inline ::google::protobuf::int64 NodeExecStats::op_start_rel_micros() const {
  // @@protoc_insertion_point(field_get:tensorflow.NodeExecStats.op_start_rel_micros)
  return op_start_rel_micros_;
}
inline void NodeExecStats::set_op_start_rel_micros(::google::protobuf::int64 value) {
  
  op_start_rel_micros_ = value;
  // @@protoc_insertion_point(field_set:tensorflow.NodeExecStats.op_start_rel_micros)
}

// optional int64 op_end_rel_micros = 4;
inline void NodeExecStats::clear_op_end_rel_micros() {
  op_end_rel_micros_ = GOOGLE_LONGLONG(0);
}
inline ::google::protobuf::int64 NodeExecStats::op_end_rel_micros() const {
  // @@protoc_insertion_point(field_get:tensorflow.NodeExecStats.op_end_rel_micros)
  return op_end_rel_micros_;
}
inline void NodeExecStats::set_op_end_rel_micros(::google::protobuf::int64 value) {
  
  op_end_rel_micros_ = value;
  // @@protoc_insertion_point(field_set:tensorflow.NodeExecStats.op_end_rel_micros)
}

// optional int64 all_end_rel_micros = 5;
inline void NodeExecStats::clear_all_end_rel_micros() {
  all_end_rel_micros_ = GOOGLE_LONGLONG(0);
}
inline ::google::protobuf::int64 NodeExecStats::all_end_rel_micros() const {
  // @@protoc_insertion_point(field_get:tensorflow.NodeExecStats.all_end_rel_micros)
  return all_end_rel_micros_;
}
inline void NodeExecStats::set_all_end_rel_micros(::google::protobuf::int64 value) {
  
  all_end_rel_micros_ = value;
  // @@protoc_insertion_point(field_set:tensorflow.NodeExecStats.all_end_rel_micros)
}

// repeated .tensorflow.AllocatorMemoryUsed memory = 6;
inline int NodeExecStats::memory_size() const {
  return memory_.size();
}
inline void NodeExecStats::clear_memory() {
  memory_.Clear();
}
inline const ::tensorflow::AllocatorMemoryUsed& NodeExecStats::memory(int index) const {
  // @@protoc_insertion_point(field_get:tensorflow.NodeExecStats.memory)
  return memory_.Get(index);
}
inline ::tensorflow::AllocatorMemoryUsed* NodeExecStats::mutable_memory(int index) {
  // @@protoc_insertion_point(field_mutable:tensorflow.NodeExecStats.memory)
  return memory_.Mutable(index);
}
inline ::tensorflow::AllocatorMemoryUsed* NodeExecStats::add_memory() {
  // @@protoc_insertion_point(field_add:tensorflow.NodeExecStats.memory)
  return memory_.Add();
}
inline ::google::protobuf::RepeatedPtrField< ::tensorflow::AllocatorMemoryUsed >*
NodeExecStats::mutable_memory() {
  // @@protoc_insertion_point(field_mutable_list:tensorflow.NodeExecStats.memory)
  return &memory_;
}
inline const ::google::protobuf::RepeatedPtrField< ::tensorflow::AllocatorMemoryUsed >&
NodeExecStats::memory() const {
  // @@protoc_insertion_point(field_list:tensorflow.NodeExecStats.memory)
  return memory_;
}

// repeated .tensorflow.NodeOutput output = 7;
inline int NodeExecStats::output_size() const {
  return output_.size();
}
inline void NodeExecStats::clear_output() {
  output_.Clear();
}
inline const ::tensorflow::NodeOutput& NodeExecStats::output(int index) const {
  // @@protoc_insertion_point(field_get:tensorflow.NodeExecStats.output)
  return output_.Get(index);
}
inline ::tensorflow::NodeOutput* NodeExecStats::mutable_output(int index) {
  // @@protoc_insertion_point(field_mutable:tensorflow.NodeExecStats.output)
  return output_.Mutable(index);
}
inline ::tensorflow::NodeOutput* NodeExecStats::add_output() {
  // @@protoc_insertion_point(field_add:tensorflow.NodeExecStats.output)
  return output_.Add();
}
inline ::google::protobuf::RepeatedPtrField< ::tensorflow::NodeOutput >*
NodeExecStats::mutable_output() {
  // @@protoc_insertion_point(field_mutable_list:tensorflow.NodeExecStats.output)
  return &output_;
}
inline const ::google::protobuf::RepeatedPtrField< ::tensorflow::NodeOutput >&
NodeExecStats::output() const {
  // @@protoc_insertion_point(field_list:tensorflow.NodeExecStats.output)
  return output_;
}

// optional string timeline_label = 8;
inline void NodeExecStats::clear_timeline_label() {
  timeline_label_.ClearToEmpty(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline const ::std::string& NodeExecStats::timeline_label() const {
  // @@protoc_insertion_point(field_get:tensorflow.NodeExecStats.timeline_label)
  return timeline_label_.Get(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void NodeExecStats::set_timeline_label(const ::std::string& value) {
  
  timeline_label_.Set(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value, GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set:tensorflow.NodeExecStats.timeline_label)
}
inline void NodeExecStats::set_timeline_label(const char* value) {
  
  timeline_label_.Set(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_char:tensorflow.NodeExecStats.timeline_label)
}
inline void NodeExecStats::set_timeline_label(const char* value,
    size_t size) {
  
  timeline_label_.Set(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_pointer:tensorflow.NodeExecStats.timeline_label)
}
inline ::std::string* NodeExecStats::mutable_timeline_label() {
  
  // @@protoc_insertion_point(field_mutable:tensorflow.NodeExecStats.timeline_label)
  return timeline_label_.Mutable(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline ::std::string* NodeExecStats::release_timeline_label() {
  // @@protoc_insertion_point(field_release:tensorflow.NodeExecStats.timeline_label)
  
  return timeline_label_.Release(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline ::std::string* NodeExecStats::unsafe_arena_release_timeline_label() {
  // @@protoc_insertion_point(field_unsafe_arena_release:tensorflow.NodeExecStats.timeline_label)
  GOOGLE_DCHECK(GetArenaNoVirtual() != NULL);
  
  return timeline_label_.UnsafeArenaRelease(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      GetArenaNoVirtual());
}
inline void NodeExecStats::set_allocated_timeline_label(::std::string* timeline_label) {
  if (timeline_label != NULL) {
    
  } else {
    
  }
  timeline_label_.SetAllocated(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), timeline_label,
      GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_allocated:tensorflow.NodeExecStats.timeline_label)
}
inline void NodeExecStats::unsafe_arena_set_allocated_timeline_label(
    ::std::string* timeline_label) {
  GOOGLE_DCHECK(GetArenaNoVirtual() != NULL);
  if (timeline_label != NULL) {
    
  } else {
    
  }
  timeline_label_.UnsafeArenaSetAllocated(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      timeline_label, GetArenaNoVirtual());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:tensorflow.NodeExecStats.timeline_label)
}

// optional int64 scheduled_micros = 9;
inline void NodeExecStats::clear_scheduled_micros() {
  scheduled_micros_ = GOOGLE_LONGLONG(0);
}
inline ::google::protobuf::int64 NodeExecStats::scheduled_micros() const {
  // @@protoc_insertion_point(field_get:tensorflow.NodeExecStats.scheduled_micros)
  return scheduled_micros_;
}
inline void NodeExecStats::set_scheduled_micros(::google::protobuf::int64 value) {
  
  scheduled_micros_ = value;
  // @@protoc_insertion_point(field_set:tensorflow.NodeExecStats.scheduled_micros)
}

// optional uint32 thread_id = 10;
inline void NodeExecStats::clear_thread_id() {
  thread_id_ = 0u;
}
inline ::google::protobuf::uint32 NodeExecStats::thread_id() const {
  // @@protoc_insertion_point(field_get:tensorflow.NodeExecStats.thread_id)
  return thread_id_;
}
inline void NodeExecStats::set_thread_id(::google::protobuf::uint32 value) {
  
  thread_id_ = value;
  // @@protoc_insertion_point(field_set:tensorflow.NodeExecStats.thread_id)
}

// repeated .tensorflow.AllocationDescription referenced_tensor = 11;
inline int NodeExecStats::referenced_tensor_size() const {
  return referenced_tensor_.size();
}
inline void NodeExecStats::clear_referenced_tensor() {
  referenced_tensor_.Clear();
}
inline const ::tensorflow::AllocationDescription& NodeExecStats::referenced_tensor(int index) const {
  // @@protoc_insertion_point(field_get:tensorflow.NodeExecStats.referenced_tensor)
  return referenced_tensor_.Get(index);
}
inline ::tensorflow::AllocationDescription* NodeExecStats::mutable_referenced_tensor(int index) {
  // @@protoc_insertion_point(field_mutable:tensorflow.NodeExecStats.referenced_tensor)
  return referenced_tensor_.Mutable(index);
}
inline ::tensorflow::AllocationDescription* NodeExecStats::add_referenced_tensor() {
  // @@protoc_insertion_point(field_add:tensorflow.NodeExecStats.referenced_tensor)
  return referenced_tensor_.Add();
}
inline ::google::protobuf::RepeatedPtrField< ::tensorflow::AllocationDescription >*
NodeExecStats::mutable_referenced_tensor() {
  // @@protoc_insertion_point(field_mutable_list:tensorflow.NodeExecStats.referenced_tensor)
  return &referenced_tensor_;
}
inline const ::google::protobuf::RepeatedPtrField< ::tensorflow::AllocationDescription >&
NodeExecStats::referenced_tensor() const {
  // @@protoc_insertion_point(field_list:tensorflow.NodeExecStats.referenced_tensor)
  return referenced_tensor_;
}

inline const NodeExecStats* NodeExecStats::internal_default_instance() {
  return &NodeExecStats_default_instance_.get();
}
// -------------------------------------------------------------------

// DeviceStepStats

// optional string device = 1;
inline void DeviceStepStats::clear_device() {
  device_.ClearToEmpty(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline const ::std::string& DeviceStepStats::device() const {
  // @@protoc_insertion_point(field_get:tensorflow.DeviceStepStats.device)
  return device_.Get(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void DeviceStepStats::set_device(const ::std::string& value) {
  
  device_.Set(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value, GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set:tensorflow.DeviceStepStats.device)
}
inline void DeviceStepStats::set_device(const char* value) {
  
  device_.Set(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_char:tensorflow.DeviceStepStats.device)
}
inline void DeviceStepStats::set_device(const char* value,
    size_t size) {
  
  device_.Set(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_pointer:tensorflow.DeviceStepStats.device)
}
inline ::std::string* DeviceStepStats::mutable_device() {
  
  // @@protoc_insertion_point(field_mutable:tensorflow.DeviceStepStats.device)
  return device_.Mutable(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline ::std::string* DeviceStepStats::release_device() {
  // @@protoc_insertion_point(field_release:tensorflow.DeviceStepStats.device)
  
  return device_.Release(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline ::std::string* DeviceStepStats::unsafe_arena_release_device() {
  // @@protoc_insertion_point(field_unsafe_arena_release:tensorflow.DeviceStepStats.device)
  GOOGLE_DCHECK(GetArenaNoVirtual() != NULL);
  
  return device_.UnsafeArenaRelease(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      GetArenaNoVirtual());
}
inline void DeviceStepStats::set_allocated_device(::std::string* device) {
  if (device != NULL) {
    
  } else {
    
  }
  device_.SetAllocated(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), device,
      GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_allocated:tensorflow.DeviceStepStats.device)
}
inline void DeviceStepStats::unsafe_arena_set_allocated_device(
    ::std::string* device) {
  GOOGLE_DCHECK(GetArenaNoVirtual() != NULL);
  if (device != NULL) {
    
  } else {
    
  }
  device_.UnsafeArenaSetAllocated(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      device, GetArenaNoVirtual());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:tensorflow.DeviceStepStats.device)
}

// repeated .tensorflow.NodeExecStats node_stats = 2;
inline int DeviceStepStats::node_stats_size() const {
  return node_stats_.size();
}
inline void DeviceStepStats::clear_node_stats() {
  node_stats_.Clear();
}
inline const ::tensorflow::NodeExecStats& DeviceStepStats::node_stats(int index) const {
  // @@protoc_insertion_point(field_get:tensorflow.DeviceStepStats.node_stats)
  return node_stats_.Get(index);
}
inline ::tensorflow::NodeExecStats* DeviceStepStats::mutable_node_stats(int index) {
  // @@protoc_insertion_point(field_mutable:tensorflow.DeviceStepStats.node_stats)
  return node_stats_.Mutable(index);
}
inline ::tensorflow::NodeExecStats* DeviceStepStats::add_node_stats() {
  // @@protoc_insertion_point(field_add:tensorflow.DeviceStepStats.node_stats)
  return node_stats_.Add();
}
inline ::google::protobuf::RepeatedPtrField< ::tensorflow::NodeExecStats >*
DeviceStepStats::mutable_node_stats() {
  // @@protoc_insertion_point(field_mutable_list:tensorflow.DeviceStepStats.node_stats)
  return &node_stats_;
}
inline const ::google::protobuf::RepeatedPtrField< ::tensorflow::NodeExecStats >&
DeviceStepStats::node_stats() const {
  // @@protoc_insertion_point(field_list:tensorflow.DeviceStepStats.node_stats)
  return node_stats_;
}

inline const DeviceStepStats* DeviceStepStats::internal_default_instance() {
  return &DeviceStepStats_default_instance_.get();
}
// -------------------------------------------------------------------

// StepStats

// repeated .tensorflow.DeviceStepStats dev_stats = 1;
inline int StepStats::dev_stats_size() const {
  return dev_stats_.size();
}
inline void StepStats::clear_dev_stats() {
  dev_stats_.Clear();
}
inline const ::tensorflow::DeviceStepStats& StepStats::dev_stats(int index) const {
  // @@protoc_insertion_point(field_get:tensorflow.StepStats.dev_stats)
  return dev_stats_.Get(index);
}
inline ::tensorflow::DeviceStepStats* StepStats::mutable_dev_stats(int index) {
  // @@protoc_insertion_point(field_mutable:tensorflow.StepStats.dev_stats)
  return dev_stats_.Mutable(index);
}
inline ::tensorflow::DeviceStepStats* StepStats::add_dev_stats() {
  // @@protoc_insertion_point(field_add:tensorflow.StepStats.dev_stats)
  return dev_stats_.Add();
}
inline ::google::protobuf::RepeatedPtrField< ::tensorflow::DeviceStepStats >*
StepStats::mutable_dev_stats() {
  // @@protoc_insertion_point(field_mutable_list:tensorflow.StepStats.dev_stats)
  return &dev_stats_;
}
inline const ::google::protobuf::RepeatedPtrField< ::tensorflow::DeviceStepStats >&
StepStats::dev_stats() const {
  // @@protoc_insertion_point(field_list:tensorflow.StepStats.dev_stats)
  return dev_stats_;
}

inline const StepStats* StepStats::internal_default_instance() {
  return &StepStats_default_instance_.get();
}
#endif  // !PROTOBUF_INLINE_NOT_IN_HEADERS
// -------------------------------------------------------------------

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

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

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


// @@protoc_insertion_point(namespace_scope)

}  // namespace tensorflow

// @@protoc_insertion_point(global_scope)

#endif  // PROTOBUF_tensorflow_2fcore_2fframework_2fstep_5fstats_2eproto__INCLUDED
