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

#ifndef PROTOBUF_INCLUDED_Headers_2eproto
#define PROTOBUF_INCLUDED_Headers_2eproto

#include <string>

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

#if GOOGLE_PROTOBUF_VERSION < 3006001
#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 3006001 < 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/inlined_string_field.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>
// @@protoc_insertion_point(includes)
#define PROTOBUF_INTERNAL_EXPORT_protobuf_Headers_2eproto 

namespace protobuf_Headers_2eproto {
// Internal implementation detail -- do not use these members.
struct TableStruct {
  static const ::google::protobuf::internal::ParseTableField entries[];
  static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
  static const ::google::protobuf::internal::ParseTable schema[4];
  static const ::google::protobuf::internal::FieldMetadata field_metadata[];
  static const ::google::protobuf::internal::SerializationTable serialization_table[];
  static const ::google::protobuf::uint32 offsets[];
};
void AddDescriptors();
}  // namespace protobuf_Headers_2eproto
namespace shogun {
class MatrixHeader;
class MatrixHeaderDefaultTypeInternal;
extern MatrixHeaderDefaultTypeInternal _MatrixHeader_default_instance_;
class SparseMatrixHeader;
class SparseMatrixHeaderDefaultTypeInternal;
extern SparseMatrixHeaderDefaultTypeInternal _SparseMatrixHeader_default_instance_;
class StringListHeader;
class StringListHeaderDefaultTypeInternal;
extern StringListHeaderDefaultTypeInternal _StringListHeader_default_instance_;
class VectorHeader;
class VectorHeaderDefaultTypeInternal;
extern VectorHeaderDefaultTypeInternal _VectorHeader_default_instance_;
}  // namespace shogun
namespace google {
namespace protobuf {
template<> ::shogun::MatrixHeader* Arena::CreateMaybeMessage<::shogun::MatrixHeader>(Arena*);
template<> ::shogun::SparseMatrixHeader* Arena::CreateMaybeMessage<::shogun::SparseMatrixHeader>(Arena*);
template<> ::shogun::StringListHeader* Arena::CreateMaybeMessage<::shogun::StringListHeader>(Arena*);
template<> ::shogun::VectorHeader* Arena::CreateMaybeMessage<::shogun::VectorHeader>(Arena*);
}  // namespace protobuf
}  // namespace google
namespace shogun {

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

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

  VectorHeader(const VectorHeader& from);

  inline VectorHeader& operator=(const VectorHeader& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  VectorHeader(VectorHeader&& from) noexcept
    : VectorHeader() {
    *this = ::std::move(from);
  }

  inline VectorHeader& operator=(VectorHeader&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

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

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const VectorHeader* internal_default_instance() {
    return reinterpret_cast<const VectorHeader*>(
               &_VectorHeader_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    0;

  void Swap(VectorHeader* other);
  friend void swap(VectorHeader& a, VectorHeader& b) {
    a.Swap(&b);
  }

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

  inline VectorHeader* New() const final {
    return CreateMaybeMessage<VectorHeader>(NULL);
  }

  VectorHeader* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<VectorHeader>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const VectorHeader& from);
  void MergeFrom(const VectorHeader& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(VectorHeader* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

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

  // required uint32 num_messages = 2;
  bool has_num_messages() const;
  void clear_num_messages();
  static const int kNumMessagesFieldNumber = 2;
  ::google::protobuf::uint32 num_messages() const;
  void set_num_messages(::google::protobuf::uint32 value);

  // @@protoc_insertion_point(class_scope:shogun.VectorHeader)
 private:
  void set_has_len();
  void clear_has_len();
  void set_has_num_messages();
  void clear_has_num_messages();

  // helper for ByteSizeLong()
  size_t RequiredFieldsByteSizeFallback() const;

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::uint64 len_;
  ::google::protobuf::uint32 num_messages_;
  friend struct ::protobuf_Headers_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  MatrixHeader(const MatrixHeader& from);

  inline MatrixHeader& operator=(const MatrixHeader& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  MatrixHeader(MatrixHeader&& from) noexcept
    : MatrixHeader() {
    *this = ::std::move(from);
  }

  inline MatrixHeader& operator=(MatrixHeader&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

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

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const MatrixHeader* internal_default_instance() {
    return reinterpret_cast<const MatrixHeader*>(
               &_MatrixHeader_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    1;

  void Swap(MatrixHeader* other);
  friend void swap(MatrixHeader& a, MatrixHeader& b) {
    a.Swap(&b);
  }

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

  inline MatrixHeader* New() const final {
    return CreateMaybeMessage<MatrixHeader>(NULL);
  }

  MatrixHeader* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<MatrixHeader>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const MatrixHeader& from);
  void MergeFrom(const MatrixHeader& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(MatrixHeader* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // required uint64 num_cols = 1;
  bool has_num_cols() const;
  void clear_num_cols();
  static const int kNumColsFieldNumber = 1;
  ::google::protobuf::uint64 num_cols() const;
  void set_num_cols(::google::protobuf::uint64 value);

  // required uint64 num_rows = 2;
  bool has_num_rows() const;
  void clear_num_rows();
  static const int kNumRowsFieldNumber = 2;
  ::google::protobuf::uint64 num_rows() const;
  void set_num_rows(::google::protobuf::uint64 value);

  // required uint32 num_messages = 3;
  bool has_num_messages() const;
  void clear_num_messages();
  static const int kNumMessagesFieldNumber = 3;
  ::google::protobuf::uint32 num_messages() const;
  void set_num_messages(::google::protobuf::uint32 value);

  // @@protoc_insertion_point(class_scope:shogun.MatrixHeader)
 private:
  void set_has_num_cols();
  void clear_has_num_cols();
  void set_has_num_rows();
  void clear_has_num_rows();
  void set_has_num_messages();
  void clear_has_num_messages();

  // helper for ByteSizeLong()
  size_t RequiredFieldsByteSizeFallback() const;

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::uint64 num_cols_;
  ::google::protobuf::uint64 num_rows_;
  ::google::protobuf::uint32 num_messages_;
  friend struct ::protobuf_Headers_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  SparseMatrixHeader(const SparseMatrixHeader& from);

  inline SparseMatrixHeader& operator=(const SparseMatrixHeader& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  SparseMatrixHeader(SparseMatrixHeader&& from) noexcept
    : SparseMatrixHeader() {
    *this = ::std::move(from);
  }

  inline SparseMatrixHeader& operator=(SparseMatrixHeader&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

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

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const SparseMatrixHeader* internal_default_instance() {
    return reinterpret_cast<const SparseMatrixHeader*>(
               &_SparseMatrixHeader_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    2;

  void Swap(SparseMatrixHeader* other);
  friend void swap(SparseMatrixHeader& a, SparseMatrixHeader& b) {
    a.Swap(&b);
  }

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

  inline SparseMatrixHeader* New() const final {
    return CreateMaybeMessage<SparseMatrixHeader>(NULL);
  }

  SparseMatrixHeader* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<SparseMatrixHeader>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const SparseMatrixHeader& from);
  void MergeFrom(const SparseMatrixHeader& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SparseMatrixHeader* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // repeated uint64 num_feat_entries = 3;
  int num_feat_entries_size() const;
  void clear_num_feat_entries();
  static const int kNumFeatEntriesFieldNumber = 3;
  ::google::protobuf::uint64 num_feat_entries(int index) const;
  void set_num_feat_entries(int index, ::google::protobuf::uint64 value);
  void add_num_feat_entries(::google::protobuf::uint64 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
      num_feat_entries() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
      mutable_num_feat_entries();

  // required uint64 num_vectors = 1;
  bool has_num_vectors() const;
  void clear_num_vectors();
  static const int kNumVectorsFieldNumber = 1;
  ::google::protobuf::uint64 num_vectors() const;
  void set_num_vectors(::google::protobuf::uint64 value);

  // required uint64 num_features = 2;
  bool has_num_features() const;
  void clear_num_features();
  static const int kNumFeaturesFieldNumber = 2;
  ::google::protobuf::uint64 num_features() const;
  void set_num_features(::google::protobuf::uint64 value);

  // @@protoc_insertion_point(class_scope:shogun.SparseMatrixHeader)
 private:
  void set_has_num_vectors();
  void clear_has_num_vectors();
  void set_has_num_features();
  void clear_has_num_features();

  // helper for ByteSizeLong()
  size_t RequiredFieldsByteSizeFallback() const;

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint64 > num_feat_entries_;
  ::google::protobuf::uint64 num_vectors_;
  ::google::protobuf::uint64 num_features_;
  friend struct ::protobuf_Headers_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  StringListHeader(const StringListHeader& from);

  inline StringListHeader& operator=(const StringListHeader& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  StringListHeader(StringListHeader&& from) noexcept
    : StringListHeader() {
    *this = ::std::move(from);
  }

  inline StringListHeader& operator=(StringListHeader&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

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

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const StringListHeader* internal_default_instance() {
    return reinterpret_cast<const StringListHeader*>(
               &_StringListHeader_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    3;

  void Swap(StringListHeader* other);
  friend void swap(StringListHeader& a, StringListHeader& b) {
    a.Swap(&b);
  }

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

  inline StringListHeader* New() const final {
    return CreateMaybeMessage<StringListHeader>(NULL);
  }

  StringListHeader* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<StringListHeader>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const StringListHeader& from);
  void MergeFrom(const StringListHeader& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(StringListHeader* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // repeated uint64 str_len = 3;
  int str_len_size() const;
  void clear_str_len();
  static const int kStrLenFieldNumber = 3;
  ::google::protobuf::uint64 str_len(int index) const;
  void set_str_len(int index, ::google::protobuf::uint64 value);
  void add_str_len(::google::protobuf::uint64 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
      str_len() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
      mutable_str_len();

  // required uint64 num_str = 1;
  bool has_num_str() const;
  void clear_num_str();
  static const int kNumStrFieldNumber = 1;
  ::google::protobuf::uint64 num_str() const;
  void set_num_str(::google::protobuf::uint64 value);

  // required uint64 max_string_len = 2;
  bool has_max_string_len() const;
  void clear_max_string_len();
  static const int kMaxStringLenFieldNumber = 2;
  ::google::protobuf::uint64 max_string_len() const;
  void set_max_string_len(::google::protobuf::uint64 value);

  // @@protoc_insertion_point(class_scope:shogun.StringListHeader)
 private:
  void set_has_num_str();
  void clear_has_num_str();
  void set_has_max_string_len();
  void clear_has_max_string_len();

  // helper for ByteSizeLong()
  size_t RequiredFieldsByteSizeFallback() const;

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint64 > str_len_;
  ::google::protobuf::uint64 num_str_;
  ::google::protobuf::uint64 max_string_len_;
  friend struct ::protobuf_Headers_2eproto::TableStruct;
};
// ===================================================================


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

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

// required uint64 len = 1;
inline bool VectorHeader::has_len() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void VectorHeader::set_has_len() {
  _has_bits_[0] |= 0x00000001u;
}
inline void VectorHeader::clear_has_len() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void VectorHeader::clear_len() {
  len_ = GOOGLE_ULONGLONG(0);
  clear_has_len();
}
inline ::google::protobuf::uint64 VectorHeader::len() const {
  // @@protoc_insertion_point(field_get:shogun.VectorHeader.len)
  return len_;
}
inline void VectorHeader::set_len(::google::protobuf::uint64 value) {
  set_has_len();
  len_ = value;
  // @@protoc_insertion_point(field_set:shogun.VectorHeader.len)
}

// required uint32 num_messages = 2;
inline bool VectorHeader::has_num_messages() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void VectorHeader::set_has_num_messages() {
  _has_bits_[0] |= 0x00000002u;
}
inline void VectorHeader::clear_has_num_messages() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void VectorHeader::clear_num_messages() {
  num_messages_ = 0u;
  clear_has_num_messages();
}
inline ::google::protobuf::uint32 VectorHeader::num_messages() const {
  // @@protoc_insertion_point(field_get:shogun.VectorHeader.num_messages)
  return num_messages_;
}
inline void VectorHeader::set_num_messages(::google::protobuf::uint32 value) {
  set_has_num_messages();
  num_messages_ = value;
  // @@protoc_insertion_point(field_set:shogun.VectorHeader.num_messages)
}

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

// MatrixHeader

// required uint64 num_cols = 1;
inline bool MatrixHeader::has_num_cols() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void MatrixHeader::set_has_num_cols() {
  _has_bits_[0] |= 0x00000001u;
}
inline void MatrixHeader::clear_has_num_cols() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void MatrixHeader::clear_num_cols() {
  num_cols_ = GOOGLE_ULONGLONG(0);
  clear_has_num_cols();
}
inline ::google::protobuf::uint64 MatrixHeader::num_cols() const {
  // @@protoc_insertion_point(field_get:shogun.MatrixHeader.num_cols)
  return num_cols_;
}
inline void MatrixHeader::set_num_cols(::google::protobuf::uint64 value) {
  set_has_num_cols();
  num_cols_ = value;
  // @@protoc_insertion_point(field_set:shogun.MatrixHeader.num_cols)
}

// required uint64 num_rows = 2;
inline bool MatrixHeader::has_num_rows() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void MatrixHeader::set_has_num_rows() {
  _has_bits_[0] |= 0x00000002u;
}
inline void MatrixHeader::clear_has_num_rows() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void MatrixHeader::clear_num_rows() {
  num_rows_ = GOOGLE_ULONGLONG(0);
  clear_has_num_rows();
}
inline ::google::protobuf::uint64 MatrixHeader::num_rows() const {
  // @@protoc_insertion_point(field_get:shogun.MatrixHeader.num_rows)
  return num_rows_;
}
inline void MatrixHeader::set_num_rows(::google::protobuf::uint64 value) {
  set_has_num_rows();
  num_rows_ = value;
  // @@protoc_insertion_point(field_set:shogun.MatrixHeader.num_rows)
}

// required uint32 num_messages = 3;
inline bool MatrixHeader::has_num_messages() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void MatrixHeader::set_has_num_messages() {
  _has_bits_[0] |= 0x00000004u;
}
inline void MatrixHeader::clear_has_num_messages() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void MatrixHeader::clear_num_messages() {
  num_messages_ = 0u;
  clear_has_num_messages();
}
inline ::google::protobuf::uint32 MatrixHeader::num_messages() const {
  // @@protoc_insertion_point(field_get:shogun.MatrixHeader.num_messages)
  return num_messages_;
}
inline void MatrixHeader::set_num_messages(::google::protobuf::uint32 value) {
  set_has_num_messages();
  num_messages_ = value;
  // @@protoc_insertion_point(field_set:shogun.MatrixHeader.num_messages)
}

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

// SparseMatrixHeader

// required uint64 num_vectors = 1;
inline bool SparseMatrixHeader::has_num_vectors() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void SparseMatrixHeader::set_has_num_vectors() {
  _has_bits_[0] |= 0x00000001u;
}
inline void SparseMatrixHeader::clear_has_num_vectors() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void SparseMatrixHeader::clear_num_vectors() {
  num_vectors_ = GOOGLE_ULONGLONG(0);
  clear_has_num_vectors();
}
inline ::google::protobuf::uint64 SparseMatrixHeader::num_vectors() const {
  // @@protoc_insertion_point(field_get:shogun.SparseMatrixHeader.num_vectors)
  return num_vectors_;
}
inline void SparseMatrixHeader::set_num_vectors(::google::protobuf::uint64 value) {
  set_has_num_vectors();
  num_vectors_ = value;
  // @@protoc_insertion_point(field_set:shogun.SparseMatrixHeader.num_vectors)
}

// required uint64 num_features = 2;
inline bool SparseMatrixHeader::has_num_features() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void SparseMatrixHeader::set_has_num_features() {
  _has_bits_[0] |= 0x00000002u;
}
inline void SparseMatrixHeader::clear_has_num_features() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void SparseMatrixHeader::clear_num_features() {
  num_features_ = GOOGLE_ULONGLONG(0);
  clear_has_num_features();
}
inline ::google::protobuf::uint64 SparseMatrixHeader::num_features() const {
  // @@protoc_insertion_point(field_get:shogun.SparseMatrixHeader.num_features)
  return num_features_;
}
inline void SparseMatrixHeader::set_num_features(::google::protobuf::uint64 value) {
  set_has_num_features();
  num_features_ = value;
  // @@protoc_insertion_point(field_set:shogun.SparseMatrixHeader.num_features)
}

// repeated uint64 num_feat_entries = 3;
inline int SparseMatrixHeader::num_feat_entries_size() const {
  return num_feat_entries_.size();
}
inline void SparseMatrixHeader::clear_num_feat_entries() {
  num_feat_entries_.Clear();
}
inline ::google::protobuf::uint64 SparseMatrixHeader::num_feat_entries(int index) const {
  // @@protoc_insertion_point(field_get:shogun.SparseMatrixHeader.num_feat_entries)
  return num_feat_entries_.Get(index);
}
inline void SparseMatrixHeader::set_num_feat_entries(int index, ::google::protobuf::uint64 value) {
  num_feat_entries_.Set(index, value);
  // @@protoc_insertion_point(field_set:shogun.SparseMatrixHeader.num_feat_entries)
}
inline void SparseMatrixHeader::add_num_feat_entries(::google::protobuf::uint64 value) {
  num_feat_entries_.Add(value);
  // @@protoc_insertion_point(field_add:shogun.SparseMatrixHeader.num_feat_entries)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
SparseMatrixHeader::num_feat_entries() const {
  // @@protoc_insertion_point(field_list:shogun.SparseMatrixHeader.num_feat_entries)
  return num_feat_entries_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
SparseMatrixHeader::mutable_num_feat_entries() {
  // @@protoc_insertion_point(field_mutable_list:shogun.SparseMatrixHeader.num_feat_entries)
  return &num_feat_entries_;
}

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

// StringListHeader

// required uint64 num_str = 1;
inline bool StringListHeader::has_num_str() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void StringListHeader::set_has_num_str() {
  _has_bits_[0] |= 0x00000001u;
}
inline void StringListHeader::clear_has_num_str() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void StringListHeader::clear_num_str() {
  num_str_ = GOOGLE_ULONGLONG(0);
  clear_has_num_str();
}
inline ::google::protobuf::uint64 StringListHeader::num_str() const {
  // @@protoc_insertion_point(field_get:shogun.StringListHeader.num_str)
  return num_str_;
}
inline void StringListHeader::set_num_str(::google::protobuf::uint64 value) {
  set_has_num_str();
  num_str_ = value;
  // @@protoc_insertion_point(field_set:shogun.StringListHeader.num_str)
}

// required uint64 max_string_len = 2;
inline bool StringListHeader::has_max_string_len() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void StringListHeader::set_has_max_string_len() {
  _has_bits_[0] |= 0x00000002u;
}
inline void StringListHeader::clear_has_max_string_len() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void StringListHeader::clear_max_string_len() {
  max_string_len_ = GOOGLE_ULONGLONG(0);
  clear_has_max_string_len();
}
inline ::google::protobuf::uint64 StringListHeader::max_string_len() const {
  // @@protoc_insertion_point(field_get:shogun.StringListHeader.max_string_len)
  return max_string_len_;
}
inline void StringListHeader::set_max_string_len(::google::protobuf::uint64 value) {
  set_has_max_string_len();
  max_string_len_ = value;
  // @@protoc_insertion_point(field_set:shogun.StringListHeader.max_string_len)
}

// repeated uint64 str_len = 3;
inline int StringListHeader::str_len_size() const {
  return str_len_.size();
}
inline void StringListHeader::clear_str_len() {
  str_len_.Clear();
}
inline ::google::protobuf::uint64 StringListHeader::str_len(int index) const {
  // @@protoc_insertion_point(field_get:shogun.StringListHeader.str_len)
  return str_len_.Get(index);
}
inline void StringListHeader::set_str_len(int index, ::google::protobuf::uint64 value) {
  str_len_.Set(index, value);
  // @@protoc_insertion_point(field_set:shogun.StringListHeader.str_len)
}
inline void StringListHeader::add_str_len(::google::protobuf::uint64 value) {
  str_len_.Add(value);
  // @@protoc_insertion_point(field_add:shogun.StringListHeader.str_len)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
StringListHeader::str_len() const {
  // @@protoc_insertion_point(field_list:shogun.StringListHeader.str_len)
  return str_len_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
StringListHeader::mutable_str_len() {
  // @@protoc_insertion_point(field_mutable_list:shogun.StringListHeader.str_len)
  return &str_len_;
}

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

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

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


// @@protoc_insertion_point(namespace_scope)

}  // namespace shogun

// @@protoc_insertion_point(global_scope)

#endif  // PROTOBUF_INCLUDED_Headers_2eproto
