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

#ifndef PROTOBUF_clstm_2eproto__INCLUDED
#define PROTOBUF_clstm_2eproto__INCLUDED

#include <string>

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

#if GOOGLE_PROTOBUF_VERSION < 2003000
#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 2003000 < 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/generated_message_util.h>
#include <google/protobuf/repeated_field.h>
#include <google/protobuf/extension_set.h>
#include <google/protobuf/generated_message_reflection.h>
// @@protoc_insertion_point(includes)

namespace clstm {

// Internal implementation detail -- do not call these.
void  protobuf_AddDesc_clstm_2eproto();
void protobuf_AssignDesc_clstm_2eproto();
void protobuf_ShutdownFile_clstm_2eproto();

class KeyValue;
class Array;
class NetworkProto;

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

class KeyValue : public ::google::protobuf::Message {
 public:
  KeyValue();
  virtual ~KeyValue();
  
  KeyValue(const KeyValue& from);
  
  inline KeyValue& operator=(const KeyValue& from) {
    CopyFrom(from);
    return *this;
  }
  
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }
  
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }
  
  static const ::google::protobuf::Descriptor* descriptor();
  static const KeyValue& default_instance();
  
  void Swap(KeyValue* other);
  
  // implements Message ----------------------------------------------
  
  KeyValue* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const KeyValue& from);
  void MergeFrom(const KeyValue& from);
  void Clear();
  bool IsInitialized() const;
  
  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  
  ::google::protobuf::Metadata GetMetadata() const;
  
  // nested types ----------------------------------------------------
  
  // accessors -------------------------------------------------------
  
  // required string key = 1;
  inline bool has_key() const;
  inline void clear_key();
  static const int kKeyFieldNumber = 1;
  inline const ::std::string& key() const;
  inline void set_key(const ::std::string& value);
  inline void set_key(const char* value);
  inline void set_key(const char* value, size_t size);
  inline ::std::string* mutable_key();
  
  // required string value = 2;
  inline bool has_value() const;
  inline void clear_value();
  static const int kValueFieldNumber = 2;
  inline const ::std::string& value() const;
  inline void set_value(const ::std::string& value);
  inline void set_value(const char* value);
  inline void set_value(const char* value, size_t size);
  inline ::std::string* mutable_value();
  
  // @@protoc_insertion_point(class_scope:clstm.KeyValue)
 private:
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  mutable int _cached_size_;
  
  ::std::string* key_;
  static const ::std::string _default_key_;
  ::std::string* value_;
  static const ::std::string _default_value_;
  friend void  protobuf_AddDesc_clstm_2eproto();
  friend void protobuf_AssignDesc_clstm_2eproto();
  friend void protobuf_ShutdownFile_clstm_2eproto();
  
  ::google::protobuf::uint32 _has_bits_[(2 + 31) / 32];
  
  // WHY DOES & HAVE LOWER PRECEDENCE THAN != !?
  inline bool _has_bit(int index) const {
    return (_has_bits_[index / 32] & (1u << (index % 32))) != 0;
  }
  inline void _set_bit(int index) {
    _has_bits_[index / 32] |= (1u << (index % 32));
  }
  inline void _clear_bit(int index) {
    _has_bits_[index / 32] &= ~(1u << (index % 32));
  }
  
  void InitAsDefaultInstance();
  static KeyValue* default_instance_;
};
// -------------------------------------------------------------------

class Array : public ::google::protobuf::Message {
 public:
  Array();
  virtual ~Array();
  
  Array(const Array& from);
  
  inline Array& operator=(const Array& from) {
    CopyFrom(from);
    return *this;
  }
  
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }
  
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }
  
  static const ::google::protobuf::Descriptor* descriptor();
  static const Array& default_instance();
  
  void Swap(Array* other);
  
  // implements Message ----------------------------------------------
  
  Array* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const Array& from);
  void MergeFrom(const Array& from);
  void Clear();
  bool IsInitialized() const;
  
  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  
  ::google::protobuf::Metadata GetMetadata() const;
  
  // nested types ----------------------------------------------------
  
  // accessors -------------------------------------------------------
  
  // optional string name = 1;
  inline bool has_name() const;
  inline void clear_name();
  static const int kNameFieldNumber = 1;
  inline const ::std::string& name() const;
  inline void set_name(const ::std::string& value);
  inline void set_name(const char* value);
  inline void set_name(const char* value, size_t size);
  inline ::std::string* mutable_name();
  
  // repeated int32 dim = 2;
  inline int dim_size() const;
  inline void clear_dim();
  static const int kDimFieldNumber = 2;
  inline ::google::protobuf::int32 dim(int index) const;
  inline void set_dim(int index, ::google::protobuf::int32 value);
  inline void add_dim(::google::protobuf::int32 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
      dim() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
      mutable_dim();
  
  // repeated float value = 3;
  inline int value_size() const;
  inline void clear_value();
  static const int kValueFieldNumber = 3;
  inline float value(int index) const;
  inline void set_value(int index, float value);
  inline void add_value(float value);
  inline const ::google::protobuf::RepeatedField< float >&
      value() const;
  inline ::google::protobuf::RepeatedField< float >*
      mutable_value();
  
  // @@protoc_insertion_point(class_scope:clstm.Array)
 private:
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  mutable int _cached_size_;
  
  ::std::string* name_;
  static const ::std::string _default_name_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > dim_;
  ::google::protobuf::RepeatedField< float > value_;
  friend void  protobuf_AddDesc_clstm_2eproto();
  friend void protobuf_AssignDesc_clstm_2eproto();
  friend void protobuf_ShutdownFile_clstm_2eproto();
  
  ::google::protobuf::uint32 _has_bits_[(3 + 31) / 32];
  
  // WHY DOES & HAVE LOWER PRECEDENCE THAN != !?
  inline bool _has_bit(int index) const {
    return (_has_bits_[index / 32] & (1u << (index % 32))) != 0;
  }
  inline void _set_bit(int index) {
    _has_bits_[index / 32] |= (1u << (index % 32));
  }
  inline void _clear_bit(int index) {
    _has_bits_[index / 32] &= ~(1u << (index % 32));
  }
  
  void InitAsDefaultInstance();
  static Array* default_instance_;
};
// -------------------------------------------------------------------

class NetworkProto : public ::google::protobuf::Message {
 public:
  NetworkProto();
  virtual ~NetworkProto();
  
  NetworkProto(const NetworkProto& from);
  
  inline NetworkProto& operator=(const NetworkProto& from) {
    CopyFrom(from);
    return *this;
  }
  
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }
  
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }
  
  static const ::google::protobuf::Descriptor* descriptor();
  static const NetworkProto& default_instance();
  
  void Swap(NetworkProto* other);
  
  // implements Message ----------------------------------------------
  
  NetworkProto* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const NetworkProto& from);
  void MergeFrom(const NetworkProto& from);
  void Clear();
  bool IsInitialized() const;
  
  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  
  ::google::protobuf::Metadata GetMetadata() const;
  
  // nested types ----------------------------------------------------
  
  // accessors -------------------------------------------------------
  
  // required string kind = 1;
  inline bool has_kind() const;
  inline void clear_kind();
  static const int kKindFieldNumber = 1;
  inline const ::std::string& kind() const;
  inline void set_kind(const ::std::string& value);
  inline void set_kind(const char* value);
  inline void set_kind(const char* value, size_t size);
  inline ::std::string* mutable_kind();
  
  // optional string name = 2;
  inline bool has_name() const;
  inline void clear_name();
  static const int kNameFieldNumber = 2;
  inline const ::std::string& name() const;
  inline void set_name(const ::std::string& value);
  inline void set_name(const char* value);
  inline void set_name(const char* value, size_t size);
  inline ::std::string* mutable_name();
  
  // required int32 ninput = 10;
  inline bool has_ninput() const;
  inline void clear_ninput();
  static const int kNinputFieldNumber = 10;
  inline ::google::protobuf::int32 ninput() const;
  inline void set_ninput(::google::protobuf::int32 value);
  
  // required int32 noutput = 11;
  inline bool has_noutput() const;
  inline void clear_noutput();
  static const int kNoutputFieldNumber = 11;
  inline ::google::protobuf::int32 noutput() const;
  inline void set_noutput(::google::protobuf::int32 value);
  
  // repeated int32 icodec = 12;
  inline int icodec_size() const;
  inline void clear_icodec();
  static const int kIcodecFieldNumber = 12;
  inline ::google::protobuf::int32 icodec(int index) const;
  inline void set_icodec(int index, ::google::protobuf::int32 value);
  inline void add_icodec(::google::protobuf::int32 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
      icodec() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
      mutable_icodec();
  
  // repeated int32 codec = 13;
  inline int codec_size() const;
  inline void clear_codec();
  static const int kCodecFieldNumber = 13;
  inline ::google::protobuf::int32 codec(int index) const;
  inline void set_codec(int index, ::google::protobuf::int32 value);
  inline void add_codec(::google::protobuf::int32 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
      codec() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
      mutable_codec();
  
  // repeated .clstm.KeyValue attribute = 20;
  inline int attribute_size() const;
  inline void clear_attribute();
  static const int kAttributeFieldNumber = 20;
  inline const ::clstm::KeyValue& attribute(int index) const;
  inline ::clstm::KeyValue* mutable_attribute(int index);
  inline ::clstm::KeyValue* add_attribute();
  inline const ::google::protobuf::RepeatedPtrField< ::clstm::KeyValue >&
      attribute() const;
  inline ::google::protobuf::RepeatedPtrField< ::clstm::KeyValue >*
      mutable_attribute();
  
  // repeated .clstm.Array weights = 30;
  inline int weights_size() const;
  inline void clear_weights();
  static const int kWeightsFieldNumber = 30;
  inline const ::clstm::Array& weights(int index) const;
  inline ::clstm::Array* mutable_weights(int index);
  inline ::clstm::Array* add_weights();
  inline const ::google::protobuf::RepeatedPtrField< ::clstm::Array >&
      weights() const;
  inline ::google::protobuf::RepeatedPtrField< ::clstm::Array >*
      mutable_weights();
  
  // repeated .clstm.NetworkProto sub = 40;
  inline int sub_size() const;
  inline void clear_sub();
  static const int kSubFieldNumber = 40;
  inline const ::clstm::NetworkProto& sub(int index) const;
  inline ::clstm::NetworkProto* mutable_sub(int index);
  inline ::clstm::NetworkProto* add_sub();
  inline const ::google::protobuf::RepeatedPtrField< ::clstm::NetworkProto >&
      sub() const;
  inline ::google::protobuf::RepeatedPtrField< ::clstm::NetworkProto >*
      mutable_sub();
  
  // @@protoc_insertion_point(class_scope:clstm.NetworkProto)
 private:
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  mutable int _cached_size_;
  
  ::std::string* kind_;
  static const ::std::string _default_kind_;
  ::std::string* name_;
  static const ::std::string _default_name_;
  ::google::protobuf::int32 ninput_;
  ::google::protobuf::int32 noutput_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > icodec_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > codec_;
  ::google::protobuf::RepeatedPtrField< ::clstm::KeyValue > attribute_;
  ::google::protobuf::RepeatedPtrField< ::clstm::Array > weights_;
  ::google::protobuf::RepeatedPtrField< ::clstm::NetworkProto > sub_;
  friend void  protobuf_AddDesc_clstm_2eproto();
  friend void protobuf_AssignDesc_clstm_2eproto();
  friend void protobuf_ShutdownFile_clstm_2eproto();
  
  ::google::protobuf::uint32 _has_bits_[(9 + 31) / 32];
  
  // WHY DOES & HAVE LOWER PRECEDENCE THAN != !?
  inline bool _has_bit(int index) const {
    return (_has_bits_[index / 32] & (1u << (index % 32))) != 0;
  }
  inline void _set_bit(int index) {
    _has_bits_[index / 32] |= (1u << (index % 32));
  }
  inline void _clear_bit(int index) {
    _has_bits_[index / 32] &= ~(1u << (index % 32));
  }
  
  void InitAsDefaultInstance();
  static NetworkProto* default_instance_;
};
// ===================================================================


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

// KeyValue

// required string key = 1;
inline bool KeyValue::has_key() const {
  return _has_bit(0);
}
inline void KeyValue::clear_key() {
  if (key_ != &_default_key_) {
    key_->clear();
  }
  _clear_bit(0);
}
inline const ::std::string& KeyValue::key() const {
  return *key_;
}
inline void KeyValue::set_key(const ::std::string& value) {
  _set_bit(0);
  if (key_ == &_default_key_) {
    key_ = new ::std::string;
  }
  key_->assign(value);
}
inline void KeyValue::set_key(const char* value) {
  _set_bit(0);
  if (key_ == &_default_key_) {
    key_ = new ::std::string;
  }
  key_->assign(value);
}
inline void KeyValue::set_key(const char* value, size_t size) {
  _set_bit(0);
  if (key_ == &_default_key_) {
    key_ = new ::std::string;
  }
  key_->assign(reinterpret_cast<const char*>(value), size);
}
inline ::std::string* KeyValue::mutable_key() {
  _set_bit(0);
  if (key_ == &_default_key_) {
    key_ = new ::std::string;
  }
  return key_;
}

// required string value = 2;
inline bool KeyValue::has_value() const {
  return _has_bit(1);
}
inline void KeyValue::clear_value() {
  if (value_ != &_default_value_) {
    value_->clear();
  }
  _clear_bit(1);
}
inline const ::std::string& KeyValue::value() const {
  return *value_;
}
inline void KeyValue::set_value(const ::std::string& value) {
  _set_bit(1);
  if (value_ == &_default_value_) {
    value_ = new ::std::string;
  }
  value_->assign(value);
}
inline void KeyValue::set_value(const char* value) {
  _set_bit(1);
  if (value_ == &_default_value_) {
    value_ = new ::std::string;
  }
  value_->assign(value);
}
inline void KeyValue::set_value(const char* value, size_t size) {
  _set_bit(1);
  if (value_ == &_default_value_) {
    value_ = new ::std::string;
  }
  value_->assign(reinterpret_cast<const char*>(value), size);
}
inline ::std::string* KeyValue::mutable_value() {
  _set_bit(1);
  if (value_ == &_default_value_) {
    value_ = new ::std::string;
  }
  return value_;
}

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

// Array

// optional string name = 1;
inline bool Array::has_name() const {
  return _has_bit(0);
}
inline void Array::clear_name() {
  if (name_ != &_default_name_) {
    name_->clear();
  }
  _clear_bit(0);
}
inline const ::std::string& Array::name() const {
  return *name_;
}
inline void Array::set_name(const ::std::string& value) {
  _set_bit(0);
  if (name_ == &_default_name_) {
    name_ = new ::std::string;
  }
  name_->assign(value);
}
inline void Array::set_name(const char* value) {
  _set_bit(0);
  if (name_ == &_default_name_) {
    name_ = new ::std::string;
  }
  name_->assign(value);
}
inline void Array::set_name(const char* value, size_t size) {
  _set_bit(0);
  if (name_ == &_default_name_) {
    name_ = new ::std::string;
  }
  name_->assign(reinterpret_cast<const char*>(value), size);
}
inline ::std::string* Array::mutable_name() {
  _set_bit(0);
  if (name_ == &_default_name_) {
    name_ = new ::std::string;
  }
  return name_;
}

// repeated int32 dim = 2;
inline int Array::dim_size() const {
  return dim_.size();
}
inline void Array::clear_dim() {
  dim_.Clear();
}
inline ::google::protobuf::int32 Array::dim(int index) const {
  return dim_.Get(index);
}
inline void Array::set_dim(int index, ::google::protobuf::int32 value) {
  dim_.Set(index, value);
}
inline void Array::add_dim(::google::protobuf::int32 value) {
  dim_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
Array::dim() const {
  return dim_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
Array::mutable_dim() {
  return &dim_;
}

// repeated float value = 3;
inline int Array::value_size() const {
  return value_.size();
}
inline void Array::clear_value() {
  value_.Clear();
}
inline float Array::value(int index) const {
  return value_.Get(index);
}
inline void Array::set_value(int index, float value) {
  value_.Set(index, value);
}
inline void Array::add_value(float value) {
  value_.Add(value);
}
inline const ::google::protobuf::RepeatedField< float >&
Array::value() const {
  return value_;
}
inline ::google::protobuf::RepeatedField< float >*
Array::mutable_value() {
  return &value_;
}

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

// NetworkProto

// required string kind = 1;
inline bool NetworkProto::has_kind() const {
  return _has_bit(0);
}
inline void NetworkProto::clear_kind() {
  if (kind_ != &_default_kind_) {
    kind_->clear();
  }
  _clear_bit(0);
}
inline const ::std::string& NetworkProto::kind() const {
  return *kind_;
}
inline void NetworkProto::set_kind(const ::std::string& value) {
  _set_bit(0);
  if (kind_ == &_default_kind_) {
    kind_ = new ::std::string;
  }
  kind_->assign(value);
}
inline void NetworkProto::set_kind(const char* value) {
  _set_bit(0);
  if (kind_ == &_default_kind_) {
    kind_ = new ::std::string;
  }
  kind_->assign(value);
}
inline void NetworkProto::set_kind(const char* value, size_t size) {
  _set_bit(0);
  if (kind_ == &_default_kind_) {
    kind_ = new ::std::string;
  }
  kind_->assign(reinterpret_cast<const char*>(value), size);
}
inline ::std::string* NetworkProto::mutable_kind() {
  _set_bit(0);
  if (kind_ == &_default_kind_) {
    kind_ = new ::std::string;
  }
  return kind_;
}

// optional string name = 2;
inline bool NetworkProto::has_name() const {
  return _has_bit(1);
}
inline void NetworkProto::clear_name() {
  if (name_ != &_default_name_) {
    name_->clear();
  }
  _clear_bit(1);
}
inline const ::std::string& NetworkProto::name() const {
  return *name_;
}
inline void NetworkProto::set_name(const ::std::string& value) {
  _set_bit(1);
  if (name_ == &_default_name_) {
    name_ = new ::std::string;
  }
  name_->assign(value);
}
inline void NetworkProto::set_name(const char* value) {
  _set_bit(1);
  if (name_ == &_default_name_) {
    name_ = new ::std::string;
  }
  name_->assign(value);
}
inline void NetworkProto::set_name(const char* value, size_t size) {
  _set_bit(1);
  if (name_ == &_default_name_) {
    name_ = new ::std::string;
  }
  name_->assign(reinterpret_cast<const char*>(value), size);
}
inline ::std::string* NetworkProto::mutable_name() {
  _set_bit(1);
  if (name_ == &_default_name_) {
    name_ = new ::std::string;
  }
  return name_;
}

// required int32 ninput = 10;
inline bool NetworkProto::has_ninput() const {
  return _has_bit(2);
}
inline void NetworkProto::clear_ninput() {
  ninput_ = 0;
  _clear_bit(2);
}
inline ::google::protobuf::int32 NetworkProto::ninput() const {
  return ninput_;
}
inline void NetworkProto::set_ninput(::google::protobuf::int32 value) {
  _set_bit(2);
  ninput_ = value;
}

// required int32 noutput = 11;
inline bool NetworkProto::has_noutput() const {
  return _has_bit(3);
}
inline void NetworkProto::clear_noutput() {
  noutput_ = 0;
  _clear_bit(3);
}
inline ::google::protobuf::int32 NetworkProto::noutput() const {
  return noutput_;
}
inline void NetworkProto::set_noutput(::google::protobuf::int32 value) {
  _set_bit(3);
  noutput_ = value;
}

// repeated int32 icodec = 12;
inline int NetworkProto::icodec_size() const {
  return icodec_.size();
}
inline void NetworkProto::clear_icodec() {
  icodec_.Clear();
}
inline ::google::protobuf::int32 NetworkProto::icodec(int index) const {
  return icodec_.Get(index);
}
inline void NetworkProto::set_icodec(int index, ::google::protobuf::int32 value) {
  icodec_.Set(index, value);
}
inline void NetworkProto::add_icodec(::google::protobuf::int32 value) {
  icodec_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
NetworkProto::icodec() const {
  return icodec_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
NetworkProto::mutable_icodec() {
  return &icodec_;
}

// repeated int32 codec = 13;
inline int NetworkProto::codec_size() const {
  return codec_.size();
}
inline void NetworkProto::clear_codec() {
  codec_.Clear();
}
inline ::google::protobuf::int32 NetworkProto::codec(int index) const {
  return codec_.Get(index);
}
inline void NetworkProto::set_codec(int index, ::google::protobuf::int32 value) {
  codec_.Set(index, value);
}
inline void NetworkProto::add_codec(::google::protobuf::int32 value) {
  codec_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
NetworkProto::codec() const {
  return codec_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
NetworkProto::mutable_codec() {
  return &codec_;
}

// repeated .clstm.KeyValue attribute = 20;
inline int NetworkProto::attribute_size() const {
  return attribute_.size();
}
inline void NetworkProto::clear_attribute() {
  attribute_.Clear();
}
inline const ::clstm::KeyValue& NetworkProto::attribute(int index) const {
  return attribute_.Get(index);
}
inline ::clstm::KeyValue* NetworkProto::mutable_attribute(int index) {
  return attribute_.Mutable(index);
}
inline ::clstm::KeyValue* NetworkProto::add_attribute() {
  return attribute_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::clstm::KeyValue >&
NetworkProto::attribute() const {
  return attribute_;
}
inline ::google::protobuf::RepeatedPtrField< ::clstm::KeyValue >*
NetworkProto::mutable_attribute() {
  return &attribute_;
}

// repeated .clstm.Array weights = 30;
inline int NetworkProto::weights_size() const {
  return weights_.size();
}
inline void NetworkProto::clear_weights() {
  weights_.Clear();
}
inline const ::clstm::Array& NetworkProto::weights(int index) const {
  return weights_.Get(index);
}
inline ::clstm::Array* NetworkProto::mutable_weights(int index) {
  return weights_.Mutable(index);
}
inline ::clstm::Array* NetworkProto::add_weights() {
  return weights_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::clstm::Array >&
NetworkProto::weights() const {
  return weights_;
}
inline ::google::protobuf::RepeatedPtrField< ::clstm::Array >*
NetworkProto::mutable_weights() {
  return &weights_;
}

// repeated .clstm.NetworkProto sub = 40;
inline int NetworkProto::sub_size() const {
  return sub_.size();
}
inline void NetworkProto::clear_sub() {
  sub_.Clear();
}
inline const ::clstm::NetworkProto& NetworkProto::sub(int index) const {
  return sub_.Get(index);
}
inline ::clstm::NetworkProto* NetworkProto::mutable_sub(int index) {
  return sub_.Mutable(index);
}
inline ::clstm::NetworkProto* NetworkProto::add_sub() {
  return sub_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::clstm::NetworkProto >&
NetworkProto::sub() const {
  return sub_;
}
inline ::google::protobuf::RepeatedPtrField< ::clstm::NetworkProto >*
NetworkProto::mutable_sub() {
  return &sub_;
}


// @@protoc_insertion_point(namespace_scope)

}  // namespace clstm

#ifndef SWIG
namespace google {
namespace protobuf {


}  // namespace google
}  // namespace protobuf
#endif  // SWIG

// @@protoc_insertion_point(global_scope)

#endif  // PROTOBUF_clstm_2eproto__INCLUDED
