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

#ifndef GOOGLE_PROTOBUF_INCLUDED_tensorflow_2fcore_2fdata_2fservice_2fworker_2eproto
#define GOOGLE_PROTOBUF_INCLUDED_tensorflow_2fcore_2fdata_2fservice_2fworker_2eproto

#include <limits>
#include <string>

#include <google/protobuf/port_def.inc>
#if PROTOBUF_VERSION < 3018000
#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 3018001 < 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_bases.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/unknown_field_set.h>
#include "tensorflow/core/data/dataset.pb.h"
#include "tensorflow/core/data/service/common.pb.h"
// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>
#define PROTOBUF_INTERNAL_EXPORT_tensorflow_2fcore_2fdata_2fservice_2fworker_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_2fdata_2fservice_2fworker_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[6]
    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 ::PROTOBUF_NAMESPACE_ID::uint32 offsets[];
};
extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_tensorflow_2fcore_2fdata_2fservice_2fworker_2eproto;
namespace tensorflow {
namespace data {
class GetElementRequest;
struct GetElementRequestDefaultTypeInternal;
extern GetElementRequestDefaultTypeInternal _GetElementRequest_default_instance_;
class GetElementResponse;
struct GetElementResponseDefaultTypeInternal;
extern GetElementResponseDefaultTypeInternal _GetElementResponse_default_instance_;
class GetWorkerTasksRequest;
struct GetWorkerTasksRequestDefaultTypeInternal;
extern GetWorkerTasksRequestDefaultTypeInternal _GetWorkerTasksRequest_default_instance_;
class GetWorkerTasksResponse;
struct GetWorkerTasksResponseDefaultTypeInternal;
extern GetWorkerTasksResponseDefaultTypeInternal _GetWorkerTasksResponse_default_instance_;
class ProcessTaskRequest;
struct ProcessTaskRequestDefaultTypeInternal;
extern ProcessTaskRequestDefaultTypeInternal _ProcessTaskRequest_default_instance_;
class ProcessTaskResponse;
struct ProcessTaskResponseDefaultTypeInternal;
extern ProcessTaskResponseDefaultTypeInternal _ProcessTaskResponse_default_instance_;
}  // namespace data
}  // namespace tensorflow
PROTOBUF_NAMESPACE_OPEN
template<> ::tensorflow::data::GetElementRequest* Arena::CreateMaybeMessage<::tensorflow::data::GetElementRequest>(Arena*);
template<> ::tensorflow::data::GetElementResponse* Arena::CreateMaybeMessage<::tensorflow::data::GetElementResponse>(Arena*);
template<> ::tensorflow::data::GetWorkerTasksRequest* Arena::CreateMaybeMessage<::tensorflow::data::GetWorkerTasksRequest>(Arena*);
template<> ::tensorflow::data::GetWorkerTasksResponse* Arena::CreateMaybeMessage<::tensorflow::data::GetWorkerTasksResponse>(Arena*);
template<> ::tensorflow::data::ProcessTaskRequest* Arena::CreateMaybeMessage<::tensorflow::data::ProcessTaskRequest>(Arena*);
template<> ::tensorflow::data::ProcessTaskResponse* Arena::CreateMaybeMessage<::tensorflow::data::ProcessTaskResponse>(Arena*);
PROTOBUF_NAMESPACE_CLOSE
namespace tensorflow {
namespace data {

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

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

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

  inline ProcessTaskRequest& operator=(const ProcessTaskRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline ProcessTaskRequest& operator=(ProcessTaskRequest&& 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 ProcessTaskRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const ProcessTaskRequest* internal_default_instance() {
    return reinterpret_cast<const ProcessTaskRequest*>(
               &_ProcessTaskRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    0;

  friend void swap(ProcessTaskRequest& a, ProcessTaskRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(ProcessTaskRequest* other) {
    if (other == this) return;
    if (GetOwningArena() == other->GetOwningArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ProcessTaskRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  inline ProcessTaskRequest* New() const final {
    return new ProcessTaskRequest();
  }

  ProcessTaskRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<ProcessTaskRequest>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const ProcessTaskRequest& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const ProcessTaskRequest& 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;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* 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(ProcessTaskRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "tensorflow.data.ProcessTaskRequest";
  }
  protected:
  explicit ProcessTaskRequest(::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 {
    kTaskFieldNumber = 1,
  };
  // .tensorflow.data.TaskDef task = 1;
  bool has_task() const;
  private:
  bool _internal_has_task() const;
  public:
  void clear_task();
  const ::tensorflow::data::TaskDef& task() const;
  PROTOBUF_MUST_USE_RESULT ::tensorflow::data::TaskDef* release_task();
  ::tensorflow::data::TaskDef* mutable_task();
  void set_allocated_task(::tensorflow::data::TaskDef* task);
  private:
  const ::tensorflow::data::TaskDef& _internal_task() const;
  ::tensorflow::data::TaskDef* _internal_mutable_task();
  public:
  void unsafe_arena_set_allocated_task(
      ::tensorflow::data::TaskDef* task);
  ::tensorflow::data::TaskDef* unsafe_arena_release_task();

  // @@protoc_insertion_point(class_scope:tensorflow.data.ProcessTaskRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::tensorflow::data::TaskDef* task_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_tensorflow_2fcore_2fdata_2fservice_2fworker_2eproto;
};
// -------------------------------------------------------------------

class ProcessTaskResponse final :
    public ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase /* @@protoc_insertion_point(class_definition:tensorflow.data.ProcessTaskResponse) */ {
 public:
  inline ProcessTaskResponse() : ProcessTaskResponse(nullptr) {}
  explicit constexpr ProcessTaskResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

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

  inline ProcessTaskResponse& operator=(const ProcessTaskResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline ProcessTaskResponse& operator=(ProcessTaskResponse&& 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 ProcessTaskResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const ProcessTaskResponse* internal_default_instance() {
    return reinterpret_cast<const ProcessTaskResponse*>(
               &_ProcessTaskResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    1;

  friend void swap(ProcessTaskResponse& a, ProcessTaskResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(ProcessTaskResponse* other) {
    if (other == this) return;
    if (GetOwningArena() == other->GetOwningArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ProcessTaskResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  inline ProcessTaskResponse* New() const final {
    return new ProcessTaskResponse();
  }

  ProcessTaskResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<ProcessTaskResponse>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::CopyFrom;
  inline void CopyFrom(const ProcessTaskResponse& from) {
    ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::CopyImpl(this, from);
  }
  using ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::MergeFrom;
  void MergeFrom(const ProcessTaskResponse& from) {
    ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::MergeImpl(this, from);
  }
  public:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "tensorflow.data.ProcessTaskResponse";
  }
  protected:
  explicit ProcessTaskResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  private:
  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 -------------------------------------------------------

  // @@protoc_insertion_point(class_scope:tensorflow.data.ProcessTaskResponse)
 private:
  class _Internal;

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

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

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

  inline GetElementRequest& operator=(const GetElementRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline GetElementRequest& operator=(GetElementRequest&& 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 GetElementRequest& default_instance() {
    return *internal_default_instance();
  }
  enum OptionalConsumerIndexCase {
    kConsumerIndex = 2,
    OPTIONAL_CONSUMER_INDEX_NOT_SET = 0,
  };

  enum OptionalRoundIndexCase {
    kRoundIndex = 3,
    OPTIONAL_ROUND_INDEX_NOT_SET = 0,
  };

  static inline const GetElementRequest* internal_default_instance() {
    return reinterpret_cast<const GetElementRequest*>(
               &_GetElementRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    2;

  friend void swap(GetElementRequest& a, GetElementRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(GetElementRequest* other) {
    if (other == this) return;
    if (GetOwningArena() == other->GetOwningArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(GetElementRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  inline GetElementRequest* New() const final {
    return new GetElementRequest();
  }

  GetElementRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<GetElementRequest>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const GetElementRequest& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const GetElementRequest& 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;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* 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(GetElementRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "tensorflow.data.GetElementRequest";
  }
  protected:
  explicit GetElementRequest(::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 {
    kTaskIdFieldNumber = 1,
    kSkippedPreviousRoundFieldNumber = 4,
    kAllowSkipFieldNumber = 5,
    kConsumerIndexFieldNumber = 2,
    kRoundIndexFieldNumber = 3,
  };
  // int64 task_id = 1;
  void clear_task_id();
  ::PROTOBUF_NAMESPACE_ID::int64 task_id() const;
  void set_task_id(::PROTOBUF_NAMESPACE_ID::int64 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int64 _internal_task_id() const;
  void _internal_set_task_id(::PROTOBUF_NAMESPACE_ID::int64 value);
  public:

  // bool skipped_previous_round = 4;
  void clear_skipped_previous_round();
  bool skipped_previous_round() const;
  void set_skipped_previous_round(bool value);
  private:
  bool _internal_skipped_previous_round() const;
  void _internal_set_skipped_previous_round(bool value);
  public:

  // bool allow_skip = 5;
  void clear_allow_skip();
  bool allow_skip() const;
  void set_allow_skip(bool value);
  private:
  bool _internal_allow_skip() const;
  void _internal_set_allow_skip(bool value);
  public:

  // int64 consumer_index = 2;
  bool has_consumer_index() const;
  private:
  bool _internal_has_consumer_index() const;
  public:
  void clear_consumer_index();
  ::PROTOBUF_NAMESPACE_ID::int64 consumer_index() const;
  void set_consumer_index(::PROTOBUF_NAMESPACE_ID::int64 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int64 _internal_consumer_index() const;
  void _internal_set_consumer_index(::PROTOBUF_NAMESPACE_ID::int64 value);
  public:

  // int64 round_index = 3;
  bool has_round_index() const;
  private:
  bool _internal_has_round_index() const;
  public:
  void clear_round_index();
  ::PROTOBUF_NAMESPACE_ID::int64 round_index() const;
  void set_round_index(::PROTOBUF_NAMESPACE_ID::int64 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int64 _internal_round_index() const;
  void _internal_set_round_index(::PROTOBUF_NAMESPACE_ID::int64 value);
  public:

  void clear_optional_consumer_index();
  OptionalConsumerIndexCase optional_consumer_index_case() const;
  void clear_optional_round_index();
  OptionalRoundIndexCase optional_round_index_case() const;
  // @@protoc_insertion_point(class_scope:tensorflow.data.GetElementRequest)
 private:
  class _Internal;
  void set_has_consumer_index();
  void set_has_round_index();

  inline bool has_optional_consumer_index() const;
  inline void clear_has_optional_consumer_index();

  inline bool has_optional_round_index() const;
  inline void clear_has_optional_round_index();

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::int64 task_id_;
  bool skipped_previous_round_;
  bool allow_skip_;
  union OptionalConsumerIndexUnion {
    constexpr OptionalConsumerIndexUnion() : _constinit_{} {}
      ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized _constinit_;
    ::PROTOBUF_NAMESPACE_ID::int64 consumer_index_;
  } optional_consumer_index_;
  union OptionalRoundIndexUnion {
    constexpr OptionalRoundIndexUnion() : _constinit_{} {}
      ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized _constinit_;
    ::PROTOBUF_NAMESPACE_ID::int64 round_index_;
  } optional_round_index_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::uint32 _oneof_case_[2];

  friend struct ::TableStruct_tensorflow_2fcore_2fdata_2fservice_2fworker_2eproto;
};
// -------------------------------------------------------------------

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

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

  inline GetElementResponse& operator=(const GetElementResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline GetElementResponse& operator=(GetElementResponse&& 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 GetElementResponse& default_instance() {
    return *internal_default_instance();
  }
  enum ElementCase {
    kCompressed = 3,
    kUncompressed = 5,
    ELEMENT_NOT_SET = 0,
  };

  static inline const GetElementResponse* internal_default_instance() {
    return reinterpret_cast<const GetElementResponse*>(
               &_GetElementResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    3;

  friend void swap(GetElementResponse& a, GetElementResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(GetElementResponse* other) {
    if (other == this) return;
    if (GetOwningArena() == other->GetOwningArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(GetElementResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  inline GetElementResponse* New() const final {
    return new GetElementResponse();
  }

  GetElementResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<GetElementResponse>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const GetElementResponse& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const GetElementResponse& 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;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* 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(GetElementResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "tensorflow.data.GetElementResponse";
  }
  protected:
  explicit GetElementResponse(::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 {
    kEndOfSequenceFieldNumber = 2,
    kSkipTaskFieldNumber = 4,
    kElementIndexFieldNumber = 6,
    kCompressedFieldNumber = 3,
    kUncompressedFieldNumber = 5,
  };
  // bool end_of_sequence = 2;
  void clear_end_of_sequence();
  bool end_of_sequence() const;
  void set_end_of_sequence(bool value);
  private:
  bool _internal_end_of_sequence() const;
  void _internal_set_end_of_sequence(bool value);
  public:

  // bool skip_task = 4;
  void clear_skip_task();
  bool skip_task() const;
  void set_skip_task(bool value);
  private:
  bool _internal_skip_task() const;
  void _internal_set_skip_task(bool value);
  public:

  // int64 element_index = 6;
  void clear_element_index();
  ::PROTOBUF_NAMESPACE_ID::int64 element_index() const;
  void set_element_index(::PROTOBUF_NAMESPACE_ID::int64 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int64 _internal_element_index() const;
  void _internal_set_element_index(::PROTOBUF_NAMESPACE_ID::int64 value);
  public:

  // .tensorflow.data.CompressedElement compressed = 3;
  bool has_compressed() const;
  private:
  bool _internal_has_compressed() const;
  public:
  void clear_compressed();
  const ::tensorflow::data::CompressedElement& compressed() const;
  PROTOBUF_MUST_USE_RESULT ::tensorflow::data::CompressedElement* release_compressed();
  ::tensorflow::data::CompressedElement* mutable_compressed();
  void set_allocated_compressed(::tensorflow::data::CompressedElement* compressed);
  private:
  const ::tensorflow::data::CompressedElement& _internal_compressed() const;
  ::tensorflow::data::CompressedElement* _internal_mutable_compressed();
  public:
  void unsafe_arena_set_allocated_compressed(
      ::tensorflow::data::CompressedElement* compressed);
  ::tensorflow::data::CompressedElement* unsafe_arena_release_compressed();

  // .tensorflow.data.UncompressedElement uncompressed = 5;
  bool has_uncompressed() const;
  private:
  bool _internal_has_uncompressed() const;
  public:
  void clear_uncompressed();
  const ::tensorflow::data::UncompressedElement& uncompressed() const;
  PROTOBUF_MUST_USE_RESULT ::tensorflow::data::UncompressedElement* release_uncompressed();
  ::tensorflow::data::UncompressedElement* mutable_uncompressed();
  void set_allocated_uncompressed(::tensorflow::data::UncompressedElement* uncompressed);
  private:
  const ::tensorflow::data::UncompressedElement& _internal_uncompressed() const;
  ::tensorflow::data::UncompressedElement* _internal_mutable_uncompressed();
  public:
  void unsafe_arena_set_allocated_uncompressed(
      ::tensorflow::data::UncompressedElement* uncompressed);
  ::tensorflow::data::UncompressedElement* unsafe_arena_release_uncompressed();

  void clear_element();
  ElementCase element_case() const;
  // @@protoc_insertion_point(class_scope:tensorflow.data.GetElementResponse)
 private:
  class _Internal;
  void set_has_compressed();
  void set_has_uncompressed();

  inline bool has_element() const;
  inline void clear_has_element();

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  bool end_of_sequence_;
  bool skip_task_;
  ::PROTOBUF_NAMESPACE_ID::int64 element_index_;
  union ElementUnion {
    constexpr ElementUnion() : _constinit_{} {}
      ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized _constinit_;
    ::tensorflow::data::CompressedElement* compressed_;
    ::tensorflow::data::UncompressedElement* uncompressed_;
  } element_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::uint32 _oneof_case_[1];

  friend struct ::TableStruct_tensorflow_2fcore_2fdata_2fservice_2fworker_2eproto;
};
// -------------------------------------------------------------------

class GetWorkerTasksRequest final :
    public ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase /* @@protoc_insertion_point(class_definition:tensorflow.data.GetWorkerTasksRequest) */ {
 public:
  inline GetWorkerTasksRequest() : GetWorkerTasksRequest(nullptr) {}
  explicit constexpr GetWorkerTasksRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

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

  inline GetWorkerTasksRequest& operator=(const GetWorkerTasksRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline GetWorkerTasksRequest& operator=(GetWorkerTasksRequest&& 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 GetWorkerTasksRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const GetWorkerTasksRequest* internal_default_instance() {
    return reinterpret_cast<const GetWorkerTasksRequest*>(
               &_GetWorkerTasksRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    4;

  friend void swap(GetWorkerTasksRequest& a, GetWorkerTasksRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(GetWorkerTasksRequest* other) {
    if (other == this) return;
    if (GetOwningArena() == other->GetOwningArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(GetWorkerTasksRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  inline GetWorkerTasksRequest* New() const final {
    return new GetWorkerTasksRequest();
  }

  GetWorkerTasksRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<GetWorkerTasksRequest>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::CopyFrom;
  inline void CopyFrom(const GetWorkerTasksRequest& from) {
    ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::CopyImpl(this, from);
  }
  using ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::MergeFrom;
  void MergeFrom(const GetWorkerTasksRequest& from) {
    ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::MergeImpl(this, from);
  }
  public:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "tensorflow.data.GetWorkerTasksRequest";
  }
  protected:
  explicit GetWorkerTasksRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  private:
  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 -------------------------------------------------------

  // @@protoc_insertion_point(class_scope:tensorflow.data.GetWorkerTasksRequest)
 private:
  class _Internal;

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

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

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

  inline GetWorkerTasksResponse& operator=(const GetWorkerTasksResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline GetWorkerTasksResponse& operator=(GetWorkerTasksResponse&& 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 GetWorkerTasksResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const GetWorkerTasksResponse* internal_default_instance() {
    return reinterpret_cast<const GetWorkerTasksResponse*>(
               &_GetWorkerTasksResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    5;

  friend void swap(GetWorkerTasksResponse& a, GetWorkerTasksResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(GetWorkerTasksResponse* other) {
    if (other == this) return;
    if (GetOwningArena() == other->GetOwningArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(GetWorkerTasksResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  inline GetWorkerTasksResponse* New() const final {
    return new GetWorkerTasksResponse();
  }

  GetWorkerTasksResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<GetWorkerTasksResponse>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const GetWorkerTasksResponse& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const GetWorkerTasksResponse& 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;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* 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(GetWorkerTasksResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "tensorflow.data.GetWorkerTasksResponse";
  }
  protected:
  explicit GetWorkerTasksResponse(::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 {
    kTasksFieldNumber = 1,
  };
  // repeated .tensorflow.data.TaskInfo tasks = 1;
  int tasks_size() const;
  private:
  int _internal_tasks_size() const;
  public:
  void clear_tasks();
  ::tensorflow::data::TaskInfo* mutable_tasks(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::tensorflow::data::TaskInfo >*
      mutable_tasks();
  private:
  const ::tensorflow::data::TaskInfo& _internal_tasks(int index) const;
  ::tensorflow::data::TaskInfo* _internal_add_tasks();
  public:
  const ::tensorflow::data::TaskInfo& tasks(int index) const;
  ::tensorflow::data::TaskInfo* add_tasks();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::tensorflow::data::TaskInfo >&
      tasks() const;

  // @@protoc_insertion_point(class_scope:tensorflow.data.GetWorkerTasksResponse)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::tensorflow::data::TaskInfo > tasks_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_tensorflow_2fcore_2fdata_2fservice_2fworker_2eproto;
};
// ===================================================================


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

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

// .tensorflow.data.TaskDef task = 1;
inline bool ProcessTaskRequest::_internal_has_task() const {
  return this != internal_default_instance() && task_ != nullptr;
}
inline bool ProcessTaskRequest::has_task() const {
  return _internal_has_task();
}
inline const ::tensorflow::data::TaskDef& ProcessTaskRequest::_internal_task() const {
  const ::tensorflow::data::TaskDef* p = task_;
  return p != nullptr ? *p : reinterpret_cast<const ::tensorflow::data::TaskDef&>(
      ::tensorflow::data::_TaskDef_default_instance_);
}
inline const ::tensorflow::data::TaskDef& ProcessTaskRequest::task() const {
  // @@protoc_insertion_point(field_get:tensorflow.data.ProcessTaskRequest.task)
  return _internal_task();
}
inline void ProcessTaskRequest::unsafe_arena_set_allocated_task(
    ::tensorflow::data::TaskDef* task) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(task_);
  }
  task_ = task;
  if (task) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:tensorflow.data.ProcessTaskRequest.task)
}
inline ::tensorflow::data::TaskDef* ProcessTaskRequest::release_task() {
  
  ::tensorflow::data::TaskDef* temp = task_;
  task_ = 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::data::TaskDef* ProcessTaskRequest::unsafe_arena_release_task() {
  // @@protoc_insertion_point(field_release:tensorflow.data.ProcessTaskRequest.task)
  
  ::tensorflow::data::TaskDef* temp = task_;
  task_ = nullptr;
  return temp;
}
inline ::tensorflow::data::TaskDef* ProcessTaskRequest::_internal_mutable_task() {
  
  if (task_ == nullptr) {
    auto* p = CreateMaybeMessage<::tensorflow::data::TaskDef>(GetArenaForAllocation());
    task_ = p;
  }
  return task_;
}
inline ::tensorflow::data::TaskDef* ProcessTaskRequest::mutable_task() {
  ::tensorflow::data::TaskDef* _msg = _internal_mutable_task();
  // @@protoc_insertion_point(field_mutable:tensorflow.data.ProcessTaskRequest.task)
  return _msg;
}
inline void ProcessTaskRequest::set_allocated_task(::tensorflow::data::TaskDef* task) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(task_);
  }
  if (task) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<
            ::PROTOBUF_NAMESPACE_ID::MessageLite>::GetOwningArena(
                reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(task));
    if (message_arena != submessage_arena) {
      task = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, task, submessage_arena);
    }
    
  } else {
    
  }
  task_ = task;
  // @@protoc_insertion_point(field_set_allocated:tensorflow.data.ProcessTaskRequest.task)
}

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

// ProcessTaskResponse

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

// GetElementRequest

// int64 task_id = 1;
inline void GetElementRequest::clear_task_id() {
  task_id_ = int64_t{0};
}
inline ::PROTOBUF_NAMESPACE_ID::int64 GetElementRequest::_internal_task_id() const {
  return task_id_;
}
inline ::PROTOBUF_NAMESPACE_ID::int64 GetElementRequest::task_id() const {
  // @@protoc_insertion_point(field_get:tensorflow.data.GetElementRequest.task_id)
  return _internal_task_id();
}
inline void GetElementRequest::_internal_set_task_id(::PROTOBUF_NAMESPACE_ID::int64 value) {
  
  task_id_ = value;
}
inline void GetElementRequest::set_task_id(::PROTOBUF_NAMESPACE_ID::int64 value) {
  _internal_set_task_id(value);
  // @@protoc_insertion_point(field_set:tensorflow.data.GetElementRequest.task_id)
}

// int64 consumer_index = 2;
inline bool GetElementRequest::_internal_has_consumer_index() const {
  return optional_consumer_index_case() == kConsumerIndex;
}
inline bool GetElementRequest::has_consumer_index() const {
  return _internal_has_consumer_index();
}
inline void GetElementRequest::set_has_consumer_index() {
  _oneof_case_[0] = kConsumerIndex;
}
inline void GetElementRequest::clear_consumer_index() {
  if (_internal_has_consumer_index()) {
    optional_consumer_index_.consumer_index_ = int64_t{0};
    clear_has_optional_consumer_index();
  }
}
inline ::PROTOBUF_NAMESPACE_ID::int64 GetElementRequest::_internal_consumer_index() const {
  if (_internal_has_consumer_index()) {
    return optional_consumer_index_.consumer_index_;
  }
  return int64_t{0};
}
inline void GetElementRequest::_internal_set_consumer_index(::PROTOBUF_NAMESPACE_ID::int64 value) {
  if (!_internal_has_consumer_index()) {
    clear_optional_consumer_index();
    set_has_consumer_index();
  }
  optional_consumer_index_.consumer_index_ = value;
}
inline ::PROTOBUF_NAMESPACE_ID::int64 GetElementRequest::consumer_index() const {
  // @@protoc_insertion_point(field_get:tensorflow.data.GetElementRequest.consumer_index)
  return _internal_consumer_index();
}
inline void GetElementRequest::set_consumer_index(::PROTOBUF_NAMESPACE_ID::int64 value) {
  _internal_set_consumer_index(value);
  // @@protoc_insertion_point(field_set:tensorflow.data.GetElementRequest.consumer_index)
}

// int64 round_index = 3;
inline bool GetElementRequest::_internal_has_round_index() const {
  return optional_round_index_case() == kRoundIndex;
}
inline bool GetElementRequest::has_round_index() const {
  return _internal_has_round_index();
}
inline void GetElementRequest::set_has_round_index() {
  _oneof_case_[1] = kRoundIndex;
}
inline void GetElementRequest::clear_round_index() {
  if (_internal_has_round_index()) {
    optional_round_index_.round_index_ = int64_t{0};
    clear_has_optional_round_index();
  }
}
inline ::PROTOBUF_NAMESPACE_ID::int64 GetElementRequest::_internal_round_index() const {
  if (_internal_has_round_index()) {
    return optional_round_index_.round_index_;
  }
  return int64_t{0};
}
inline void GetElementRequest::_internal_set_round_index(::PROTOBUF_NAMESPACE_ID::int64 value) {
  if (!_internal_has_round_index()) {
    clear_optional_round_index();
    set_has_round_index();
  }
  optional_round_index_.round_index_ = value;
}
inline ::PROTOBUF_NAMESPACE_ID::int64 GetElementRequest::round_index() const {
  // @@protoc_insertion_point(field_get:tensorflow.data.GetElementRequest.round_index)
  return _internal_round_index();
}
inline void GetElementRequest::set_round_index(::PROTOBUF_NAMESPACE_ID::int64 value) {
  _internal_set_round_index(value);
  // @@protoc_insertion_point(field_set:tensorflow.data.GetElementRequest.round_index)
}

// bool skipped_previous_round = 4;
inline void GetElementRequest::clear_skipped_previous_round() {
  skipped_previous_round_ = false;
}
inline bool GetElementRequest::_internal_skipped_previous_round() const {
  return skipped_previous_round_;
}
inline bool GetElementRequest::skipped_previous_round() const {
  // @@protoc_insertion_point(field_get:tensorflow.data.GetElementRequest.skipped_previous_round)
  return _internal_skipped_previous_round();
}
inline void GetElementRequest::_internal_set_skipped_previous_round(bool value) {
  
  skipped_previous_round_ = value;
}
inline void GetElementRequest::set_skipped_previous_round(bool value) {
  _internal_set_skipped_previous_round(value);
  // @@protoc_insertion_point(field_set:tensorflow.data.GetElementRequest.skipped_previous_round)
}

// bool allow_skip = 5;
inline void GetElementRequest::clear_allow_skip() {
  allow_skip_ = false;
}
inline bool GetElementRequest::_internal_allow_skip() const {
  return allow_skip_;
}
inline bool GetElementRequest::allow_skip() const {
  // @@protoc_insertion_point(field_get:tensorflow.data.GetElementRequest.allow_skip)
  return _internal_allow_skip();
}
inline void GetElementRequest::_internal_set_allow_skip(bool value) {
  
  allow_skip_ = value;
}
inline void GetElementRequest::set_allow_skip(bool value) {
  _internal_set_allow_skip(value);
  // @@protoc_insertion_point(field_set:tensorflow.data.GetElementRequest.allow_skip)
}

inline bool GetElementRequest::has_optional_consumer_index() const {
  return optional_consumer_index_case() != OPTIONAL_CONSUMER_INDEX_NOT_SET;
}
inline void GetElementRequest::clear_has_optional_consumer_index() {
  _oneof_case_[0] = OPTIONAL_CONSUMER_INDEX_NOT_SET;
}
inline bool GetElementRequest::has_optional_round_index() const {
  return optional_round_index_case() != OPTIONAL_ROUND_INDEX_NOT_SET;
}
inline void GetElementRequest::clear_has_optional_round_index() {
  _oneof_case_[1] = OPTIONAL_ROUND_INDEX_NOT_SET;
}
inline GetElementRequest::OptionalConsumerIndexCase GetElementRequest::optional_consumer_index_case() const {
  return GetElementRequest::OptionalConsumerIndexCase(_oneof_case_[0]);
}
inline GetElementRequest::OptionalRoundIndexCase GetElementRequest::optional_round_index_case() const {
  return GetElementRequest::OptionalRoundIndexCase(_oneof_case_[1]);
}
// -------------------------------------------------------------------

// GetElementResponse

// .tensorflow.data.CompressedElement compressed = 3;
inline bool GetElementResponse::_internal_has_compressed() const {
  return element_case() == kCompressed;
}
inline bool GetElementResponse::has_compressed() const {
  return _internal_has_compressed();
}
inline void GetElementResponse::set_has_compressed() {
  _oneof_case_[0] = kCompressed;
}
inline ::tensorflow::data::CompressedElement* GetElementResponse::release_compressed() {
  // @@protoc_insertion_point(field_release:tensorflow.data.GetElementResponse.compressed)
  if (_internal_has_compressed()) {
    clear_has_element();
      ::tensorflow::data::CompressedElement* temp = element_.compressed_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    element_.compressed_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::tensorflow::data::CompressedElement& GetElementResponse::_internal_compressed() const {
  return _internal_has_compressed()
      ? *element_.compressed_
      : reinterpret_cast< ::tensorflow::data::CompressedElement&>(::tensorflow::data::_CompressedElement_default_instance_);
}
inline const ::tensorflow::data::CompressedElement& GetElementResponse::compressed() const {
  // @@protoc_insertion_point(field_get:tensorflow.data.GetElementResponse.compressed)
  return _internal_compressed();
}
inline ::tensorflow::data::CompressedElement* GetElementResponse::unsafe_arena_release_compressed() {
  // @@protoc_insertion_point(field_unsafe_arena_release:tensorflow.data.GetElementResponse.compressed)
  if (_internal_has_compressed()) {
    clear_has_element();
    ::tensorflow::data::CompressedElement* temp = element_.compressed_;
    element_.compressed_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GetElementResponse::unsafe_arena_set_allocated_compressed(::tensorflow::data::CompressedElement* compressed) {
  clear_element();
  if (compressed) {
    set_has_compressed();
    element_.compressed_ = compressed;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:tensorflow.data.GetElementResponse.compressed)
}
inline ::tensorflow::data::CompressedElement* GetElementResponse::_internal_mutable_compressed() {
  if (!_internal_has_compressed()) {
    clear_element();
    set_has_compressed();
    element_.compressed_ = CreateMaybeMessage< ::tensorflow::data::CompressedElement >(GetArenaForAllocation());
  }
  return element_.compressed_;
}
inline ::tensorflow::data::CompressedElement* GetElementResponse::mutable_compressed() {
  ::tensorflow::data::CompressedElement* _msg = _internal_mutable_compressed();
  // @@protoc_insertion_point(field_mutable:tensorflow.data.GetElementResponse.compressed)
  return _msg;
}

// .tensorflow.data.UncompressedElement uncompressed = 5;
inline bool GetElementResponse::_internal_has_uncompressed() const {
  return element_case() == kUncompressed;
}
inline bool GetElementResponse::has_uncompressed() const {
  return _internal_has_uncompressed();
}
inline void GetElementResponse::set_has_uncompressed() {
  _oneof_case_[0] = kUncompressed;
}
inline ::tensorflow::data::UncompressedElement* GetElementResponse::release_uncompressed() {
  // @@protoc_insertion_point(field_release:tensorflow.data.GetElementResponse.uncompressed)
  if (_internal_has_uncompressed()) {
    clear_has_element();
      ::tensorflow::data::UncompressedElement* temp = element_.uncompressed_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    element_.uncompressed_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::tensorflow::data::UncompressedElement& GetElementResponse::_internal_uncompressed() const {
  return _internal_has_uncompressed()
      ? *element_.uncompressed_
      : reinterpret_cast< ::tensorflow::data::UncompressedElement&>(::tensorflow::data::_UncompressedElement_default_instance_);
}
inline const ::tensorflow::data::UncompressedElement& GetElementResponse::uncompressed() const {
  // @@protoc_insertion_point(field_get:tensorflow.data.GetElementResponse.uncompressed)
  return _internal_uncompressed();
}
inline ::tensorflow::data::UncompressedElement* GetElementResponse::unsafe_arena_release_uncompressed() {
  // @@protoc_insertion_point(field_unsafe_arena_release:tensorflow.data.GetElementResponse.uncompressed)
  if (_internal_has_uncompressed()) {
    clear_has_element();
    ::tensorflow::data::UncompressedElement* temp = element_.uncompressed_;
    element_.uncompressed_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GetElementResponse::unsafe_arena_set_allocated_uncompressed(::tensorflow::data::UncompressedElement* uncompressed) {
  clear_element();
  if (uncompressed) {
    set_has_uncompressed();
    element_.uncompressed_ = uncompressed;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:tensorflow.data.GetElementResponse.uncompressed)
}
inline ::tensorflow::data::UncompressedElement* GetElementResponse::_internal_mutable_uncompressed() {
  if (!_internal_has_uncompressed()) {
    clear_element();
    set_has_uncompressed();
    element_.uncompressed_ = CreateMaybeMessage< ::tensorflow::data::UncompressedElement >(GetArenaForAllocation());
  }
  return element_.uncompressed_;
}
inline ::tensorflow::data::UncompressedElement* GetElementResponse::mutable_uncompressed() {
  ::tensorflow::data::UncompressedElement* _msg = _internal_mutable_uncompressed();
  // @@protoc_insertion_point(field_mutable:tensorflow.data.GetElementResponse.uncompressed)
  return _msg;
}

// int64 element_index = 6;
inline void GetElementResponse::clear_element_index() {
  element_index_ = int64_t{0};
}
inline ::PROTOBUF_NAMESPACE_ID::int64 GetElementResponse::_internal_element_index() const {
  return element_index_;
}
inline ::PROTOBUF_NAMESPACE_ID::int64 GetElementResponse::element_index() const {
  // @@protoc_insertion_point(field_get:tensorflow.data.GetElementResponse.element_index)
  return _internal_element_index();
}
inline void GetElementResponse::_internal_set_element_index(::PROTOBUF_NAMESPACE_ID::int64 value) {
  
  element_index_ = value;
}
inline void GetElementResponse::set_element_index(::PROTOBUF_NAMESPACE_ID::int64 value) {
  _internal_set_element_index(value);
  // @@protoc_insertion_point(field_set:tensorflow.data.GetElementResponse.element_index)
}

// bool end_of_sequence = 2;
inline void GetElementResponse::clear_end_of_sequence() {
  end_of_sequence_ = false;
}
inline bool GetElementResponse::_internal_end_of_sequence() const {
  return end_of_sequence_;
}
inline bool GetElementResponse::end_of_sequence() const {
  // @@protoc_insertion_point(field_get:tensorflow.data.GetElementResponse.end_of_sequence)
  return _internal_end_of_sequence();
}
inline void GetElementResponse::_internal_set_end_of_sequence(bool value) {
  
  end_of_sequence_ = value;
}
inline void GetElementResponse::set_end_of_sequence(bool value) {
  _internal_set_end_of_sequence(value);
  // @@protoc_insertion_point(field_set:tensorflow.data.GetElementResponse.end_of_sequence)
}

// bool skip_task = 4;
inline void GetElementResponse::clear_skip_task() {
  skip_task_ = false;
}
inline bool GetElementResponse::_internal_skip_task() const {
  return skip_task_;
}
inline bool GetElementResponse::skip_task() const {
  // @@protoc_insertion_point(field_get:tensorflow.data.GetElementResponse.skip_task)
  return _internal_skip_task();
}
inline void GetElementResponse::_internal_set_skip_task(bool value) {
  
  skip_task_ = value;
}
inline void GetElementResponse::set_skip_task(bool value) {
  _internal_set_skip_task(value);
  // @@protoc_insertion_point(field_set:tensorflow.data.GetElementResponse.skip_task)
}

inline bool GetElementResponse::has_element() const {
  return element_case() != ELEMENT_NOT_SET;
}
inline void GetElementResponse::clear_has_element() {
  _oneof_case_[0] = ELEMENT_NOT_SET;
}
inline GetElementResponse::ElementCase GetElementResponse::element_case() const {
  return GetElementResponse::ElementCase(_oneof_case_[0]);
}
// -------------------------------------------------------------------

// GetWorkerTasksRequest

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

// GetWorkerTasksResponse

// repeated .tensorflow.data.TaskInfo tasks = 1;
inline int GetWorkerTasksResponse::_internal_tasks_size() const {
  return tasks_.size();
}
inline int GetWorkerTasksResponse::tasks_size() const {
  return _internal_tasks_size();
}
inline ::tensorflow::data::TaskInfo* GetWorkerTasksResponse::mutable_tasks(int index) {
  // @@protoc_insertion_point(field_mutable:tensorflow.data.GetWorkerTasksResponse.tasks)
  return tasks_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::tensorflow::data::TaskInfo >*
GetWorkerTasksResponse::mutable_tasks() {
  // @@protoc_insertion_point(field_mutable_list:tensorflow.data.GetWorkerTasksResponse.tasks)
  return &tasks_;
}
inline const ::tensorflow::data::TaskInfo& GetWorkerTasksResponse::_internal_tasks(int index) const {
  return tasks_.Get(index);
}
inline const ::tensorflow::data::TaskInfo& GetWorkerTasksResponse::tasks(int index) const {
  // @@protoc_insertion_point(field_get:tensorflow.data.GetWorkerTasksResponse.tasks)
  return _internal_tasks(index);
}
inline ::tensorflow::data::TaskInfo* GetWorkerTasksResponse::_internal_add_tasks() {
  return tasks_.Add();
}
inline ::tensorflow::data::TaskInfo* GetWorkerTasksResponse::add_tasks() {
  ::tensorflow::data::TaskInfo* _add = _internal_add_tasks();
  // @@protoc_insertion_point(field_add:tensorflow.data.GetWorkerTasksResponse.tasks)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::tensorflow::data::TaskInfo >&
GetWorkerTasksResponse::tasks() const {
  // @@protoc_insertion_point(field_list:tensorflow.data.GetWorkerTasksResponse.tasks)
  return tasks_;
}

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

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

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

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

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


// @@protoc_insertion_point(namespace_scope)

}  // namespace data
}  // namespace tensorflow

// @@protoc_insertion_point(global_scope)

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