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

#ifndef PROTOBUF_tensorflow_2fcore_2fexample_2fexample_2eproto__INCLUDED
#define PROTOBUF_tensorflow_2fcore_2fexample_2fexample_2eproto__INCLUDED

#include <string>

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

#if GOOGLE_PROTOBUF_VERSION < 3003000
#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 3003000 < 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/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.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/unknown_field_set.h>
#include "tensorflow/core/example/feature.pb.h"
// @@protoc_insertion_point(includes)
namespace tensorflow {
class BytesList;
class BytesListDefaultTypeInternal;
extern BytesListDefaultTypeInternal _BytesList_default_instance_;
class Example;
class ExampleDefaultTypeInternal;
extern ExampleDefaultTypeInternal _Example_default_instance_;
class Feature;
class FeatureDefaultTypeInternal;
extern FeatureDefaultTypeInternal _Feature_default_instance_;
class FeatureList;
class FeatureListDefaultTypeInternal;
extern FeatureListDefaultTypeInternal _FeatureList_default_instance_;
class FeatureLists;
class FeatureListsDefaultTypeInternal;
extern FeatureListsDefaultTypeInternal _FeatureLists_default_instance_;
class FeatureLists_FeatureListEntry;
class FeatureLists_FeatureListEntryDefaultTypeInternal;
extern FeatureLists_FeatureListEntryDefaultTypeInternal _FeatureLists_FeatureListEntry_default_instance_;
class Features;
class FeaturesDefaultTypeInternal;
extern FeaturesDefaultTypeInternal _Features_default_instance_;
class Features_FeatureEntry;
class Features_FeatureEntryDefaultTypeInternal;
extern Features_FeatureEntryDefaultTypeInternal _Features_FeatureEntry_default_instance_;
class FloatList;
class FloatListDefaultTypeInternal;
extern FloatListDefaultTypeInternal _FloatList_default_instance_;
class Int64List;
class Int64ListDefaultTypeInternal;
extern Int64ListDefaultTypeInternal _Int64List_default_instance_;
class SequenceExample;
class SequenceExampleDefaultTypeInternal;
extern SequenceExampleDefaultTypeInternal _SequenceExample_default_instance_;
}  // namespace tensorflow

namespace tensorflow {

namespace protobuf_tensorflow_2fcore_2fexample_2fexample_2eproto {
// Internal implementation detail -- do not call these.
struct TableStruct {
  static const ::google::protobuf::internal::ParseTableField entries[];
  static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
  static const ::google::protobuf::internal::ParseTable schema[];
  static const ::google::protobuf::uint32 offsets[];
  static void InitDefaultsImpl();
  static void Shutdown();
};
void AddDescriptors();
void InitDefaults();
}  // namespace protobuf_tensorflow_2fcore_2fexample_2fexample_2eproto

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

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

  Example(const Example& from);

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

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

  static inline const Example* internal_default_instance() {
    return reinterpret_cast<const Example*>(
               &_Example_default_instance_);
  }
  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
    0;

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

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

  inline Example* New() const PROTOBUF_FINAL { return New(NULL); }

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

  size_t ByteSizeLong() const PROTOBUF_FINAL;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const PROTOBUF_FINAL;
  void InternalSwap(Example* other);
  protected:
  explicit Example(::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 PROTOBUF_FINAL;

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

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

  // .tensorflow.Features features = 1;
  bool has_features() const;
  void clear_features();
  static const int kFeaturesFieldNumber = 1;
  private:
  void _slow_mutable_features();
  void _slow_set_allocated_features(
      ::google::protobuf::Arena* message_arena, ::tensorflow::Features** features);
  ::tensorflow::Features* _slow_release_features();
  public:
  const ::tensorflow::Features& features() const;
  ::tensorflow::Features* mutable_features();
  ::tensorflow::Features* release_features();
  void set_allocated_features(::tensorflow::Features* features);
  ::tensorflow::Features* unsafe_arena_release_features();
  void unsafe_arena_set_allocated_features(
      ::tensorflow::Features* features);

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

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  friend class ::google::protobuf::Arena;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::tensorflow::Features* features_;
  mutable int _cached_size_;
  friend struct protobuf_tensorflow_2fcore_2fexample_2fexample_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  SequenceExample(const SequenceExample& from);

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

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

  static inline const SequenceExample* internal_default_instance() {
    return reinterpret_cast<const SequenceExample*>(
               &_SequenceExample_default_instance_);
  }
  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
    1;

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

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

  inline SequenceExample* New() const PROTOBUF_FINAL { return New(NULL); }

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

  size_t ByteSizeLong() const PROTOBUF_FINAL;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const PROTOBUF_FINAL;
  void InternalSwap(SequenceExample* other);
  protected:
  explicit SequenceExample(::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 PROTOBUF_FINAL;

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

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

  // .tensorflow.Features context = 1;
  bool has_context() const;
  void clear_context();
  static const int kContextFieldNumber = 1;
  private:
  void _slow_mutable_context();
  void _slow_set_allocated_context(
      ::google::protobuf::Arena* message_arena, ::tensorflow::Features** context);
  ::tensorflow::Features* _slow_release_context();
  public:
  const ::tensorflow::Features& context() const;
  ::tensorflow::Features* mutable_context();
  ::tensorflow::Features* release_context();
  void set_allocated_context(::tensorflow::Features* context);
  ::tensorflow::Features* unsafe_arena_release_context();
  void unsafe_arena_set_allocated_context(
      ::tensorflow::Features* context);

  // .tensorflow.FeatureLists feature_lists = 2;
  bool has_feature_lists() const;
  void clear_feature_lists();
  static const int kFeatureListsFieldNumber = 2;
  private:
  void _slow_mutable_feature_lists();
  void _slow_set_allocated_feature_lists(
      ::google::protobuf::Arena* message_arena, ::tensorflow::FeatureLists** feature_lists);
  ::tensorflow::FeatureLists* _slow_release_feature_lists();
  public:
  const ::tensorflow::FeatureLists& feature_lists() const;
  ::tensorflow::FeatureLists* mutable_feature_lists();
  ::tensorflow::FeatureLists* release_feature_lists();
  void set_allocated_feature_lists(::tensorflow::FeatureLists* feature_lists);
  ::tensorflow::FeatureLists* unsafe_arena_release_feature_lists();
  void unsafe_arena_set_allocated_feature_lists(
      ::tensorflow::FeatureLists* feature_lists);

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

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  friend class ::google::protobuf::Arena;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::tensorflow::Features* context_;
  ::tensorflow::FeatureLists* feature_lists_;
  mutable int _cached_size_;
  friend struct protobuf_tensorflow_2fcore_2fexample_2fexample_2eproto::TableStruct;
};
// ===================================================================


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

#if !PROTOBUF_INLINE_NOT_IN_HEADERS
// Example

// .tensorflow.Features features = 1;
inline bool Example::has_features() const {
  return this != internal_default_instance() && features_ != NULL;
}
inline void Example::clear_features() {
  if (GetArenaNoVirtual() == NULL && features_ != NULL) delete features_;
  features_ = NULL;
}
inline const ::tensorflow::Features& Example::features() const {
  // @@protoc_insertion_point(field_get:tensorflow.Example.features)
  return features_ != NULL ? *features_
                         : *::tensorflow::Features::internal_default_instance();
}
inline ::tensorflow::Features* Example::mutable_features() {
  
  if (features_ == NULL) {
    _slow_mutable_features();
  }
  // @@protoc_insertion_point(field_mutable:tensorflow.Example.features)
  return features_;
}
inline ::tensorflow::Features* Example::release_features() {
  // @@protoc_insertion_point(field_release:tensorflow.Example.features)
  
  if (GetArenaNoVirtual() != NULL) {
    return _slow_release_features();
  } else {
    ::tensorflow::Features* temp = features_;
    features_ = NULL;
    return temp;
  }
}
inline  void Example::set_allocated_features(::tensorflow::Features* features) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete features_;
  }
  if (features != NULL) {
    _slow_set_allocated_features(message_arena, &features);
  }
  features_ = features;
  if (features) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_set_allocated:tensorflow.Example.features)
}

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

// SequenceExample

// .tensorflow.Features context = 1;
inline bool SequenceExample::has_context() const {
  return this != internal_default_instance() && context_ != NULL;
}
inline void SequenceExample::clear_context() {
  if (GetArenaNoVirtual() == NULL && context_ != NULL) delete context_;
  context_ = NULL;
}
inline const ::tensorflow::Features& SequenceExample::context() const {
  // @@protoc_insertion_point(field_get:tensorflow.SequenceExample.context)
  return context_ != NULL ? *context_
                         : *::tensorflow::Features::internal_default_instance();
}
inline ::tensorflow::Features* SequenceExample::mutable_context() {
  
  if (context_ == NULL) {
    _slow_mutable_context();
  }
  // @@protoc_insertion_point(field_mutable:tensorflow.SequenceExample.context)
  return context_;
}
inline ::tensorflow::Features* SequenceExample::release_context() {
  // @@protoc_insertion_point(field_release:tensorflow.SequenceExample.context)
  
  if (GetArenaNoVirtual() != NULL) {
    return _slow_release_context();
  } else {
    ::tensorflow::Features* temp = context_;
    context_ = NULL;
    return temp;
  }
}
inline  void SequenceExample::set_allocated_context(::tensorflow::Features* context) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete context_;
  }
  if (context != NULL) {
    _slow_set_allocated_context(message_arena, &context);
  }
  context_ = context;
  if (context) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_set_allocated:tensorflow.SequenceExample.context)
}

// .tensorflow.FeatureLists feature_lists = 2;
inline bool SequenceExample::has_feature_lists() const {
  return this != internal_default_instance() && feature_lists_ != NULL;
}
inline void SequenceExample::clear_feature_lists() {
  if (GetArenaNoVirtual() == NULL && feature_lists_ != NULL) delete feature_lists_;
  feature_lists_ = NULL;
}
inline const ::tensorflow::FeatureLists& SequenceExample::feature_lists() const {
  // @@protoc_insertion_point(field_get:tensorflow.SequenceExample.feature_lists)
  return feature_lists_ != NULL ? *feature_lists_
                         : *::tensorflow::FeatureLists::internal_default_instance();
}
inline ::tensorflow::FeatureLists* SequenceExample::mutable_feature_lists() {
  
  if (feature_lists_ == NULL) {
    _slow_mutable_feature_lists();
  }
  // @@protoc_insertion_point(field_mutable:tensorflow.SequenceExample.feature_lists)
  return feature_lists_;
}
inline ::tensorflow::FeatureLists* SequenceExample::release_feature_lists() {
  // @@protoc_insertion_point(field_release:tensorflow.SequenceExample.feature_lists)
  
  if (GetArenaNoVirtual() != NULL) {
    return _slow_release_feature_lists();
  } else {
    ::tensorflow::FeatureLists* temp = feature_lists_;
    feature_lists_ = NULL;
    return temp;
  }
}
inline  void SequenceExample::set_allocated_feature_lists(::tensorflow::FeatureLists* feature_lists) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete feature_lists_;
  }
  if (feature_lists != NULL) {
    _slow_set_allocated_feature_lists(message_arena, &feature_lists);
  }
  feature_lists_ = feature_lists;
  if (feature_lists) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_set_allocated:tensorflow.SequenceExample.feature_lists)
}

#endif  // !PROTOBUF_INLINE_NOT_IN_HEADERS
// -------------------------------------------------------------------


// @@protoc_insertion_point(namespace_scope)


}  // namespace tensorflow

// @@protoc_insertion_point(global_scope)

#endif  // PROTOBUF_tensorflow_2fcore_2fexample_2fexample_2eproto__INCLUDED
