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

#ifndef PROTOBUF_INCLUDED_caffe2_2fproto_2fmetanet_2eproto
#define PROTOBUF_INCLUDED_caffe2_2fproto_2fmetanet_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>
#include "caffe2/proto/caffe2.pb.h"
// @@protoc_insertion_point(includes)
#define PROTOBUF_INTERNAL_EXPORT_protobuf_caffe2_2fproto_2fmetanet_2eproto CAFFE2_API

namespace protobuf_caffe2_2fproto_2fmetanet_2eproto {
// Internal implementation detail -- do not use these members.
struct CAFFE2_API TableStruct {
  static const ::google::protobuf::internal::ParseTableField entries[];
  static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
  static const ::google::protobuf::internal::ParseTable schema[6];
  static const ::google::protobuf::internal::FieldMetadata field_metadata[];
  static const ::google::protobuf::internal::SerializationTable serialization_table[];
  static const ::google::protobuf::uint32 offsets[];
};
void CAFFE2_API AddDescriptors();
}  // namespace protobuf_caffe2_2fproto_2fmetanet_2eproto
namespace caffe2 { const ::std::string& GetEmptyStringAlreadyInited(); 
class BlobsMap;
class BlobsMapDefaultTypeInternal;
CAFFE2_API extern BlobsMapDefaultTypeInternal _BlobsMap_default_instance_;
class MetaNetDef;
class MetaNetDefDefaultTypeInternal;
CAFFE2_API extern MetaNetDefDefaultTypeInternal _MetaNetDef_default_instance_;
class ModelInfo;
class ModelInfoDefaultTypeInternal;
CAFFE2_API extern ModelInfoDefaultTypeInternal _ModelInfo_default_instance_;
class NetsMap;
class NetsMapDefaultTypeInternal;
CAFFE2_API extern NetsMapDefaultTypeInternal _NetsMap_default_instance_;
class PlansMap;
class PlansMapDefaultTypeInternal;
CAFFE2_API extern PlansMapDefaultTypeInternal _PlansMap_default_instance_;
class StringMap;
class StringMapDefaultTypeInternal;
CAFFE2_API extern StringMapDefaultTypeInternal _StringMap_default_instance_;
}  // namespace caffe2
namespace google {
namespace protobuf {
template<> CAFFE2_API ::caffe2::BlobsMap* Arena::CreateMaybeMessage<::caffe2::BlobsMap>(Arena*);
template<> CAFFE2_API ::caffe2::MetaNetDef* Arena::CreateMaybeMessage<::caffe2::MetaNetDef>(Arena*);
template<> CAFFE2_API ::caffe2::ModelInfo* Arena::CreateMaybeMessage<::caffe2::ModelInfo>(Arena*);
template<> CAFFE2_API ::caffe2::NetsMap* Arena::CreateMaybeMessage<::caffe2::NetsMap>(Arena*);
template<> CAFFE2_API ::caffe2::PlansMap* Arena::CreateMaybeMessage<::caffe2::PlansMap>(Arena*);
template<> CAFFE2_API ::caffe2::StringMap* Arena::CreateMaybeMessage<::caffe2::StringMap>(Arena*);
}  // namespace protobuf
}  // namespace google
namespace caffe2 {

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

class CAFFE2_API ModelInfo : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:caffe2.ModelInfo) */ {
 public:
  ModelInfo();
  virtual ~ModelInfo();

  ModelInfo(const ModelInfo& from);

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

  inline ModelInfo& operator=(ModelInfo&& 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 ModelInfo& default_instance();

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

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

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

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

  ModelInfo* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<ModelInfo>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const ModelInfo& from);
  void MergeFrom(const ModelInfo& 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(ModelInfo* 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 -------------------------------------------------------

  // optional string project = 1;
  bool has_project() const;
  void clear_project();
  static const int kProjectFieldNumber = 1;
  const ::std::string& project() const;
  void set_project(const ::std::string& value);
  #if LANG_CXX11
  void set_project(::std::string&& value);
  #endif
  void set_project(const char* value);
  void set_project(const char* value, size_t size);
  ::std::string* mutable_project();
  ::std::string* release_project();
  void set_allocated_project(::std::string* project);

  // optional string modelClass = 2;
  bool has_modelclass() const;
  void clear_modelclass();
  static const int kModelClassFieldNumber = 2;
  const ::std::string& modelclass() const;
  void set_modelclass(const ::std::string& value);
  #if LANG_CXX11
  void set_modelclass(::std::string&& value);
  #endif
  void set_modelclass(const char* value);
  void set_modelclass(const char* value, size_t size);
  ::std::string* mutable_modelclass();
  ::std::string* release_modelclass();
  void set_allocated_modelclass(::std::string* modelclass);

  // optional string version = 3;
  bool has_version() const;
  void clear_version();
  static const int kVersionFieldNumber = 3;
  const ::std::string& version() const;
  void set_version(const ::std::string& value);
  #if LANG_CXX11
  void set_version(::std::string&& value);
  #endif
  void set_version(const char* value);
  void set_version(const char* value, size_t size);
  ::std::string* mutable_version();
  ::std::string* release_version();
  void set_allocated_version(::std::string* version);

  // optional string predictorType = 4 [default = "SINGLE_PREDICTOR"];
  bool has_predictortype() const;
  void clear_predictortype();
  static const int kPredictorTypeFieldNumber = 4;
  const ::std::string& predictortype() const;
  void set_predictortype(const ::std::string& value);
  #if LANG_CXX11
  void set_predictortype(::std::string&& value);
  #endif
  void set_predictortype(const char* value);
  void set_predictortype(const char* value, size_t size);
  ::std::string* mutable_predictortype();
  ::std::string* release_predictortype();
  void set_allocated_predictortype(::std::string* predictortype);

  // optional string modelId = 5;
  bool has_modelid() const;
  void clear_modelid();
  static const int kModelIdFieldNumber = 5;
  const ::std::string& modelid() const;
  void set_modelid(const ::std::string& value);
  #if LANG_CXX11
  void set_modelid(::std::string&& value);
  #endif
  void set_modelid(const char* value);
  void set_modelid(const char* value, size_t size);
  ::std::string* mutable_modelid();
  ::std::string* release_modelid();
  void set_allocated_modelid(::std::string* modelid);

  // @@protoc_insertion_point(class_scope:caffe2.ModelInfo)
 private:
  void set_has_project();
  void clear_has_project();
  void set_has_modelclass();
  void clear_has_modelclass();
  void set_has_version();
  void clear_has_version();
  void set_has_predictortype();
  void clear_has_predictortype();
  void set_has_modelid();
  void clear_has_modelid();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::internal::ArenaStringPtr project_;
  ::google::protobuf::internal::ArenaStringPtr modelclass_;
  ::google::protobuf::internal::ArenaStringPtr version_;
  public:
  static ::google::protobuf::internal::ExplicitlyConstructed< ::std::string> _i_give_permission_to_break_this_code_default_predictortype_;
  private:
  ::google::protobuf::internal::ArenaStringPtr predictortype_;
  ::google::protobuf::internal::ArenaStringPtr modelid_;
  friend struct ::protobuf_caffe2_2fproto_2fmetanet_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class CAFFE2_API BlobsMap : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:caffe2.BlobsMap) */ {
 public:
  BlobsMap();
  virtual ~BlobsMap();

  BlobsMap(const BlobsMap& from);

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

  inline BlobsMap& operator=(BlobsMap&& 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 BlobsMap& default_instance();

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

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

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

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

  BlobsMap* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<BlobsMap>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const BlobsMap& from);
  void MergeFrom(const BlobsMap& 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(BlobsMap* 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 string value = 2;
  int value_size() const;
  void clear_value();
  static const int kValueFieldNumber = 2;
  const ::std::string& value(int index) const;
  ::std::string* mutable_value(int index);
  void set_value(int index, const ::std::string& value);
  #if LANG_CXX11
  void set_value(int index, ::std::string&& value);
  #endif
  void set_value(int index, const char* value);
  void set_value(int index, const char* value, size_t size);
  ::std::string* add_value();
  void add_value(const ::std::string& value);
  #if LANG_CXX11
  void add_value(::std::string&& value);
  #endif
  void add_value(const char* value);
  void add_value(const char* value, size_t size);
  const ::google::protobuf::RepeatedPtrField< ::std::string>& value() const;
  ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_value();

  // required string key = 1;
  bool has_key() const;
  void clear_key();
  static const int kKeyFieldNumber = 1;
  const ::std::string& key() const;
  void set_key(const ::std::string& value);
  #if LANG_CXX11
  void set_key(::std::string&& value);
  #endif
  void set_key(const char* value);
  void set_key(const char* value, size_t size);
  ::std::string* mutable_key();
  ::std::string* release_key();
  void set_allocated_key(::std::string* key);

  // @@protoc_insertion_point(class_scope:caffe2.BlobsMap)
 private:
  void set_has_key();
  void clear_has_key();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::RepeatedPtrField< ::std::string> value_;
  ::google::protobuf::internal::ArenaStringPtr key_;
  friend struct ::protobuf_caffe2_2fproto_2fmetanet_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class CAFFE2_API NetsMap : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:caffe2.NetsMap) */ {
 public:
  NetsMap();
  virtual ~NetsMap();

  NetsMap(const NetsMap& from);

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

  inline NetsMap& operator=(NetsMap&& 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 NetsMap& default_instance();

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

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

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

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

  NetsMap* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<NetsMap>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const NetsMap& from);
  void MergeFrom(const NetsMap& 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(NetsMap* 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 string key = 1;
  bool has_key() const;
  void clear_key();
  static const int kKeyFieldNumber = 1;
  const ::std::string& key() const;
  void set_key(const ::std::string& value);
  #if LANG_CXX11
  void set_key(::std::string&& value);
  #endif
  void set_key(const char* value);
  void set_key(const char* value, size_t size);
  ::std::string* mutable_key();
  ::std::string* release_key();
  void set_allocated_key(::std::string* key);

  // required .caffe2.NetDef value = 2;
  bool has_value() const;
  void clear_value();
  static const int kValueFieldNumber = 2;
  private:
  const ::caffe2::NetDef& _internal_value() const;
  public:
  const ::caffe2::NetDef& value() const;
  ::caffe2::NetDef* release_value();
  ::caffe2::NetDef* mutable_value();
  void set_allocated_value(::caffe2::NetDef* value);

  // @@protoc_insertion_point(class_scope:caffe2.NetsMap)
 private:
  void set_has_key();
  void clear_has_key();
  void set_has_value();
  void clear_has_value();

  // 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::internal::ArenaStringPtr key_;
  ::caffe2::NetDef* value_;
  friend struct ::protobuf_caffe2_2fproto_2fmetanet_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class CAFFE2_API PlansMap : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:caffe2.PlansMap) */ {
 public:
  PlansMap();
  virtual ~PlansMap();

  PlansMap(const PlansMap& from);

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

  inline PlansMap& operator=(PlansMap&& 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 PlansMap& default_instance();

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

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

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

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

  PlansMap* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<PlansMap>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const PlansMap& from);
  void MergeFrom(const PlansMap& 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(PlansMap* 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 string key = 1;
  bool has_key() const;
  void clear_key();
  static const int kKeyFieldNumber = 1;
  const ::std::string& key() const;
  void set_key(const ::std::string& value);
  #if LANG_CXX11
  void set_key(::std::string&& value);
  #endif
  void set_key(const char* value);
  void set_key(const char* value, size_t size);
  ::std::string* mutable_key();
  ::std::string* release_key();
  void set_allocated_key(::std::string* key);

  // required .caffe2.PlanDef value = 2;
  bool has_value() const;
  void clear_value();
  static const int kValueFieldNumber = 2;
  private:
  const ::caffe2::PlanDef& _internal_value() const;
  public:
  const ::caffe2::PlanDef& value() const;
  ::caffe2::PlanDef* release_value();
  ::caffe2::PlanDef* mutable_value();
  void set_allocated_value(::caffe2::PlanDef* value);

  // @@protoc_insertion_point(class_scope:caffe2.PlansMap)
 private:
  void set_has_key();
  void clear_has_key();
  void set_has_value();
  void clear_has_value();

  // 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::internal::ArenaStringPtr key_;
  ::caffe2::PlanDef* value_;
  friend struct ::protobuf_caffe2_2fproto_2fmetanet_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class CAFFE2_API StringMap : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:caffe2.StringMap) */ {
 public:
  StringMap();
  virtual ~StringMap();

  StringMap(const StringMap& from);

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

  inline StringMap& operator=(StringMap&& 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 StringMap& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const StringMap* internal_default_instance() {
    return reinterpret_cast<const StringMap*>(
               &_StringMap_default_instance_);
  }
  static int const kIndexInFileMessages =
    4;

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

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

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

  StringMap* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<StringMap>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const StringMap& from);
  void MergeFrom(const StringMap& 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(StringMap* 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 string key = 1;
  bool has_key() const;
  void clear_key();
  static const int kKeyFieldNumber = 1;
  const ::std::string& key() const;
  void set_key(const ::std::string& value);
  #if LANG_CXX11
  void set_key(::std::string&& value);
  #endif
  void set_key(const char* value);
  void set_key(const char* value, size_t size);
  ::std::string* mutable_key();
  ::std::string* release_key();
  void set_allocated_key(::std::string* key);

  // required string value = 2;
  bool has_value() const;
  void clear_value();
  static const int kValueFieldNumber = 2;
  const ::std::string& value() const;
  void set_value(const ::std::string& value);
  #if LANG_CXX11
  void set_value(::std::string&& value);
  #endif
  void set_value(const char* value);
  void set_value(const char* value, size_t size);
  ::std::string* mutable_value();
  ::std::string* release_value();
  void set_allocated_value(::std::string* value);

  // @@protoc_insertion_point(class_scope:caffe2.StringMap)
 private:
  void set_has_key();
  void clear_has_key();
  void set_has_value();
  void clear_has_value();

  // 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::internal::ArenaStringPtr key_;
  ::google::protobuf::internal::ArenaStringPtr value_;
  friend struct ::protobuf_caffe2_2fproto_2fmetanet_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class CAFFE2_API MetaNetDef : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:caffe2.MetaNetDef) */ {
 public:
  MetaNetDef();
  virtual ~MetaNetDef();

  MetaNetDef(const MetaNetDef& from);

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

  inline MetaNetDef& operator=(MetaNetDef&& 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 MetaNetDef& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const MetaNetDef* internal_default_instance() {
    return reinterpret_cast<const MetaNetDef*>(
               &_MetaNetDef_default_instance_);
  }
  static int const kIndexInFileMessages =
    5;

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

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

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

  MetaNetDef* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<MetaNetDef>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const MetaNetDef& from);
  void MergeFrom(const MetaNetDef& 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(MetaNetDef* 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 .caffe2.BlobsMap blobs = 1;
  int blobs_size() const;
  void clear_blobs();
  static const int kBlobsFieldNumber = 1;
  ::caffe2::BlobsMap* mutable_blobs(int index);
  ::google::protobuf::RepeatedPtrField< ::caffe2::BlobsMap >*
      mutable_blobs();
  const ::caffe2::BlobsMap& blobs(int index) const;
  ::caffe2::BlobsMap* add_blobs();
  const ::google::protobuf::RepeatedPtrField< ::caffe2::BlobsMap >&
      blobs() const;

  // repeated .caffe2.NetsMap nets = 2;
  int nets_size() const;
  void clear_nets();
  static const int kNetsFieldNumber = 2;
  ::caffe2::NetsMap* mutable_nets(int index);
  ::google::protobuf::RepeatedPtrField< ::caffe2::NetsMap >*
      mutable_nets();
  const ::caffe2::NetsMap& nets(int index) const;
  ::caffe2::NetsMap* add_nets();
  const ::google::protobuf::RepeatedPtrField< ::caffe2::NetsMap >&
      nets() const;

  // repeated .caffe2.PlansMap plans = 4;
  int plans_size() const;
  void clear_plans();
  static const int kPlansFieldNumber = 4;
  ::caffe2::PlansMap* mutable_plans(int index);
  ::google::protobuf::RepeatedPtrField< ::caffe2::PlansMap >*
      mutable_plans();
  const ::caffe2::PlansMap& plans(int index) const;
  ::caffe2::PlansMap* add_plans();
  const ::google::protobuf::RepeatedPtrField< ::caffe2::PlansMap >&
      plans() const;

  // repeated .caffe2.StringMap applicationSpecificInfo = 5;
  int applicationspecificinfo_size() const;
  void clear_applicationspecificinfo();
  static const int kApplicationSpecificInfoFieldNumber = 5;
  ::caffe2::StringMap* mutable_applicationspecificinfo(int index);
  ::google::protobuf::RepeatedPtrField< ::caffe2::StringMap >*
      mutable_applicationspecificinfo();
  const ::caffe2::StringMap& applicationspecificinfo(int index) const;
  ::caffe2::StringMap* add_applicationspecificinfo();
  const ::google::protobuf::RepeatedPtrField< ::caffe2::StringMap >&
      applicationspecificinfo() const;

  // repeated string blobsOrder = 6;
  int blobsorder_size() const;
  void clear_blobsorder();
  static const int kBlobsOrderFieldNumber = 6;
  const ::std::string& blobsorder(int index) const;
  ::std::string* mutable_blobsorder(int index);
  void set_blobsorder(int index, const ::std::string& value);
  #if LANG_CXX11
  void set_blobsorder(int index, ::std::string&& value);
  #endif
  void set_blobsorder(int index, const char* value);
  void set_blobsorder(int index, const char* value, size_t size);
  ::std::string* add_blobsorder();
  void add_blobsorder(const ::std::string& value);
  #if LANG_CXX11
  void add_blobsorder(::std::string&& value);
  #endif
  void add_blobsorder(const char* value);
  void add_blobsorder(const char* value, size_t size);
  const ::google::protobuf::RepeatedPtrField< ::std::string>& blobsorder() const;
  ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_blobsorder();

  // repeated string preLoadBlobs = 7;
  int preloadblobs_size() const;
  void clear_preloadblobs();
  static const int kPreLoadBlobsFieldNumber = 7;
  const ::std::string& preloadblobs(int index) const;
  ::std::string* mutable_preloadblobs(int index);
  void set_preloadblobs(int index, const ::std::string& value);
  #if LANG_CXX11
  void set_preloadblobs(int index, ::std::string&& value);
  #endif
  void set_preloadblobs(int index, const char* value);
  void set_preloadblobs(int index, const char* value, size_t size);
  ::std::string* add_preloadblobs();
  void add_preloadblobs(const ::std::string& value);
  #if LANG_CXX11
  void add_preloadblobs(::std::string&& value);
  #endif
  void add_preloadblobs(const char* value);
  void add_preloadblobs(const char* value, size_t size);
  const ::google::protobuf::RepeatedPtrField< ::std::string>& preloadblobs() const;
  ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_preloadblobs();

  // optional .caffe2.ModelInfo modelInfo = 3;
  bool has_modelinfo() const;
  void clear_modelinfo();
  static const int kModelInfoFieldNumber = 3;
  private:
  const ::caffe2::ModelInfo& _internal_modelinfo() const;
  public:
  const ::caffe2::ModelInfo& modelinfo() const;
  ::caffe2::ModelInfo* release_modelinfo();
  ::caffe2::ModelInfo* mutable_modelinfo();
  void set_allocated_modelinfo(::caffe2::ModelInfo* modelinfo);

  // optional .caffe2.TensorBoundShapes tensorBoundShapes = 8;
  bool has_tensorboundshapes() const;
  void clear_tensorboundshapes();
  static const int kTensorBoundShapesFieldNumber = 8;
  private:
  const ::caffe2::TensorBoundShapes& _internal_tensorboundshapes() const;
  public:
  const ::caffe2::TensorBoundShapes& tensorboundshapes() const;
  ::caffe2::TensorBoundShapes* release_tensorboundshapes();
  ::caffe2::TensorBoundShapes* mutable_tensorboundshapes();
  void set_allocated_tensorboundshapes(::caffe2::TensorBoundShapes* tensorboundshapes);

  // @@protoc_insertion_point(class_scope:caffe2.MetaNetDef)
 private:
  void set_has_modelinfo();
  void clear_has_modelinfo();
  void set_has_tensorboundshapes();
  void clear_has_tensorboundshapes();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::RepeatedPtrField< ::caffe2::BlobsMap > blobs_;
  ::google::protobuf::RepeatedPtrField< ::caffe2::NetsMap > nets_;
  ::google::protobuf::RepeatedPtrField< ::caffe2::PlansMap > plans_;
  ::google::protobuf::RepeatedPtrField< ::caffe2::StringMap > applicationspecificinfo_;
  ::google::protobuf::RepeatedPtrField< ::std::string> blobsorder_;
  ::google::protobuf::RepeatedPtrField< ::std::string> preloadblobs_;
  ::caffe2::ModelInfo* modelinfo_;
  ::caffe2::TensorBoundShapes* tensorboundshapes_;
  friend struct ::protobuf_caffe2_2fproto_2fmetanet_2eproto::TableStruct;
};
// ===================================================================


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

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

// optional string project = 1;
inline bool ModelInfo::has_project() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void ModelInfo::set_has_project() {
  _has_bits_[0] |= 0x00000001u;
}
inline void ModelInfo::clear_has_project() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void ModelInfo::clear_project() {
  project_.ClearToEmptyNoArena(&GetEmptyStringAlreadyInited());
  clear_has_project();
}
inline const ::std::string& ModelInfo::project() const {
  // @@protoc_insertion_point(field_get:caffe2.ModelInfo.project)
  return project_.GetNoArena();
}
inline void ModelInfo::set_project(const ::std::string& value) {
  set_has_project();
  project_.SetNoArena(&GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:caffe2.ModelInfo.project)
}
#if LANG_CXX11
inline void ModelInfo::set_project(::std::string&& value) {
  set_has_project();
  project_.SetNoArena(
    &GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:caffe2.ModelInfo.project)
}
#endif
inline void ModelInfo::set_project(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_project();
  project_.SetNoArena(&GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:caffe2.ModelInfo.project)
}
inline void ModelInfo::set_project(const char* value, size_t size) {
  set_has_project();
  project_.SetNoArena(&GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:caffe2.ModelInfo.project)
}
inline ::std::string* ModelInfo::mutable_project() {
  set_has_project();
  // @@protoc_insertion_point(field_mutable:caffe2.ModelInfo.project)
  return project_.MutableNoArena(&GetEmptyStringAlreadyInited());
}
inline ::std::string* ModelInfo::release_project() {
  // @@protoc_insertion_point(field_release:caffe2.ModelInfo.project)
  if (!has_project()) {
    return NULL;
  }
  clear_has_project();
  return project_.ReleaseNonDefaultNoArena(&GetEmptyStringAlreadyInited());
}
inline void ModelInfo::set_allocated_project(::std::string* project) {
  if (project != NULL) {
    set_has_project();
  } else {
    clear_has_project();
  }
  project_.SetAllocatedNoArena(&GetEmptyStringAlreadyInited(), project);
  // @@protoc_insertion_point(field_set_allocated:caffe2.ModelInfo.project)
}

// optional string modelClass = 2;
inline bool ModelInfo::has_modelclass() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void ModelInfo::set_has_modelclass() {
  _has_bits_[0] |= 0x00000002u;
}
inline void ModelInfo::clear_has_modelclass() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void ModelInfo::clear_modelclass() {
  modelclass_.ClearToEmptyNoArena(&GetEmptyStringAlreadyInited());
  clear_has_modelclass();
}
inline const ::std::string& ModelInfo::modelclass() const {
  // @@protoc_insertion_point(field_get:caffe2.ModelInfo.modelClass)
  return modelclass_.GetNoArena();
}
inline void ModelInfo::set_modelclass(const ::std::string& value) {
  set_has_modelclass();
  modelclass_.SetNoArena(&GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:caffe2.ModelInfo.modelClass)
}
#if LANG_CXX11
inline void ModelInfo::set_modelclass(::std::string&& value) {
  set_has_modelclass();
  modelclass_.SetNoArena(
    &GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:caffe2.ModelInfo.modelClass)
}
#endif
inline void ModelInfo::set_modelclass(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_modelclass();
  modelclass_.SetNoArena(&GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:caffe2.ModelInfo.modelClass)
}
inline void ModelInfo::set_modelclass(const char* value, size_t size) {
  set_has_modelclass();
  modelclass_.SetNoArena(&GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:caffe2.ModelInfo.modelClass)
}
inline ::std::string* ModelInfo::mutable_modelclass() {
  set_has_modelclass();
  // @@protoc_insertion_point(field_mutable:caffe2.ModelInfo.modelClass)
  return modelclass_.MutableNoArena(&GetEmptyStringAlreadyInited());
}
inline ::std::string* ModelInfo::release_modelclass() {
  // @@protoc_insertion_point(field_release:caffe2.ModelInfo.modelClass)
  if (!has_modelclass()) {
    return NULL;
  }
  clear_has_modelclass();
  return modelclass_.ReleaseNonDefaultNoArena(&GetEmptyStringAlreadyInited());
}
inline void ModelInfo::set_allocated_modelclass(::std::string* modelclass) {
  if (modelclass != NULL) {
    set_has_modelclass();
  } else {
    clear_has_modelclass();
  }
  modelclass_.SetAllocatedNoArena(&GetEmptyStringAlreadyInited(), modelclass);
  // @@protoc_insertion_point(field_set_allocated:caffe2.ModelInfo.modelClass)
}

// optional string version = 3;
inline bool ModelInfo::has_version() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void ModelInfo::set_has_version() {
  _has_bits_[0] |= 0x00000004u;
}
inline void ModelInfo::clear_has_version() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void ModelInfo::clear_version() {
  version_.ClearToEmptyNoArena(&GetEmptyStringAlreadyInited());
  clear_has_version();
}
inline const ::std::string& ModelInfo::version() const {
  // @@protoc_insertion_point(field_get:caffe2.ModelInfo.version)
  return version_.GetNoArena();
}
inline void ModelInfo::set_version(const ::std::string& value) {
  set_has_version();
  version_.SetNoArena(&GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:caffe2.ModelInfo.version)
}
#if LANG_CXX11
inline void ModelInfo::set_version(::std::string&& value) {
  set_has_version();
  version_.SetNoArena(
    &GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:caffe2.ModelInfo.version)
}
#endif
inline void ModelInfo::set_version(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_version();
  version_.SetNoArena(&GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:caffe2.ModelInfo.version)
}
inline void ModelInfo::set_version(const char* value, size_t size) {
  set_has_version();
  version_.SetNoArena(&GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:caffe2.ModelInfo.version)
}
inline ::std::string* ModelInfo::mutable_version() {
  set_has_version();
  // @@protoc_insertion_point(field_mutable:caffe2.ModelInfo.version)
  return version_.MutableNoArena(&GetEmptyStringAlreadyInited());
}
inline ::std::string* ModelInfo::release_version() {
  // @@protoc_insertion_point(field_release:caffe2.ModelInfo.version)
  if (!has_version()) {
    return NULL;
  }
  clear_has_version();
  return version_.ReleaseNonDefaultNoArena(&GetEmptyStringAlreadyInited());
}
inline void ModelInfo::set_allocated_version(::std::string* version) {
  if (version != NULL) {
    set_has_version();
  } else {
    clear_has_version();
  }
  version_.SetAllocatedNoArena(&GetEmptyStringAlreadyInited(), version);
  // @@protoc_insertion_point(field_set_allocated:caffe2.ModelInfo.version)
}

// optional string predictorType = 4 [default = "SINGLE_PREDICTOR"];
inline bool ModelInfo::has_predictortype() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void ModelInfo::set_has_predictortype() {
  _has_bits_[0] |= 0x00000008u;
}
inline void ModelInfo::clear_has_predictortype() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void ModelInfo::clear_predictortype() {
  predictortype_.ClearToDefaultNoArena(&::caffe2::ModelInfo::_i_give_permission_to_break_this_code_default_predictortype_.get());
  clear_has_predictortype();
}
inline const ::std::string& ModelInfo::predictortype() const {
  // @@protoc_insertion_point(field_get:caffe2.ModelInfo.predictorType)
  return predictortype_.GetNoArena();
}
inline void ModelInfo::set_predictortype(const ::std::string& value) {
  set_has_predictortype();
  predictortype_.SetNoArena(&::caffe2::ModelInfo::_i_give_permission_to_break_this_code_default_predictortype_.get(), value);
  // @@protoc_insertion_point(field_set:caffe2.ModelInfo.predictorType)
}
#if LANG_CXX11
inline void ModelInfo::set_predictortype(::std::string&& value) {
  set_has_predictortype();
  predictortype_.SetNoArena(
    &::caffe2::ModelInfo::_i_give_permission_to_break_this_code_default_predictortype_.get(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:caffe2.ModelInfo.predictorType)
}
#endif
inline void ModelInfo::set_predictortype(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_predictortype();
  predictortype_.SetNoArena(&::caffe2::ModelInfo::_i_give_permission_to_break_this_code_default_predictortype_.get(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:caffe2.ModelInfo.predictorType)
}
inline void ModelInfo::set_predictortype(const char* value, size_t size) {
  set_has_predictortype();
  predictortype_.SetNoArena(&::caffe2::ModelInfo::_i_give_permission_to_break_this_code_default_predictortype_.get(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:caffe2.ModelInfo.predictorType)
}
inline ::std::string* ModelInfo::mutable_predictortype() {
  set_has_predictortype();
  // @@protoc_insertion_point(field_mutable:caffe2.ModelInfo.predictorType)
  return predictortype_.MutableNoArena(&::caffe2::ModelInfo::_i_give_permission_to_break_this_code_default_predictortype_.get());
}
inline ::std::string* ModelInfo::release_predictortype() {
  // @@protoc_insertion_point(field_release:caffe2.ModelInfo.predictorType)
  if (!has_predictortype()) {
    return NULL;
  }
  clear_has_predictortype();
  return predictortype_.ReleaseNonDefaultNoArena(&::caffe2::ModelInfo::_i_give_permission_to_break_this_code_default_predictortype_.get());
}
inline void ModelInfo::set_allocated_predictortype(::std::string* predictortype) {
  if (predictortype != NULL) {
    set_has_predictortype();
  } else {
    clear_has_predictortype();
  }
  predictortype_.SetAllocatedNoArena(&::caffe2::ModelInfo::_i_give_permission_to_break_this_code_default_predictortype_.get(), predictortype);
  // @@protoc_insertion_point(field_set_allocated:caffe2.ModelInfo.predictorType)
}

// optional string modelId = 5;
inline bool ModelInfo::has_modelid() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void ModelInfo::set_has_modelid() {
  _has_bits_[0] |= 0x00000010u;
}
inline void ModelInfo::clear_has_modelid() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void ModelInfo::clear_modelid() {
  modelid_.ClearToEmptyNoArena(&GetEmptyStringAlreadyInited());
  clear_has_modelid();
}
inline const ::std::string& ModelInfo::modelid() const {
  // @@protoc_insertion_point(field_get:caffe2.ModelInfo.modelId)
  return modelid_.GetNoArena();
}
inline void ModelInfo::set_modelid(const ::std::string& value) {
  set_has_modelid();
  modelid_.SetNoArena(&GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:caffe2.ModelInfo.modelId)
}
#if LANG_CXX11
inline void ModelInfo::set_modelid(::std::string&& value) {
  set_has_modelid();
  modelid_.SetNoArena(
    &GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:caffe2.ModelInfo.modelId)
}
#endif
inline void ModelInfo::set_modelid(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_modelid();
  modelid_.SetNoArena(&GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:caffe2.ModelInfo.modelId)
}
inline void ModelInfo::set_modelid(const char* value, size_t size) {
  set_has_modelid();
  modelid_.SetNoArena(&GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:caffe2.ModelInfo.modelId)
}
inline ::std::string* ModelInfo::mutable_modelid() {
  set_has_modelid();
  // @@protoc_insertion_point(field_mutable:caffe2.ModelInfo.modelId)
  return modelid_.MutableNoArena(&GetEmptyStringAlreadyInited());
}
inline ::std::string* ModelInfo::release_modelid() {
  // @@protoc_insertion_point(field_release:caffe2.ModelInfo.modelId)
  if (!has_modelid()) {
    return NULL;
  }
  clear_has_modelid();
  return modelid_.ReleaseNonDefaultNoArena(&GetEmptyStringAlreadyInited());
}
inline void ModelInfo::set_allocated_modelid(::std::string* modelid) {
  if (modelid != NULL) {
    set_has_modelid();
  } else {
    clear_has_modelid();
  }
  modelid_.SetAllocatedNoArena(&GetEmptyStringAlreadyInited(), modelid);
  // @@protoc_insertion_point(field_set_allocated:caffe2.ModelInfo.modelId)
}

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

// BlobsMap

// required string key = 1;
inline bool BlobsMap::has_key() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void BlobsMap::set_has_key() {
  _has_bits_[0] |= 0x00000001u;
}
inline void BlobsMap::clear_has_key() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void BlobsMap::clear_key() {
  key_.ClearToEmptyNoArena(&GetEmptyStringAlreadyInited());
  clear_has_key();
}
inline const ::std::string& BlobsMap::key() const {
  // @@protoc_insertion_point(field_get:caffe2.BlobsMap.key)
  return key_.GetNoArena();
}
inline void BlobsMap::set_key(const ::std::string& value) {
  set_has_key();
  key_.SetNoArena(&GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:caffe2.BlobsMap.key)
}
#if LANG_CXX11
inline void BlobsMap::set_key(::std::string&& value) {
  set_has_key();
  key_.SetNoArena(
    &GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:caffe2.BlobsMap.key)
}
#endif
inline void BlobsMap::set_key(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_key();
  key_.SetNoArena(&GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:caffe2.BlobsMap.key)
}
inline void BlobsMap::set_key(const char* value, size_t size) {
  set_has_key();
  key_.SetNoArena(&GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:caffe2.BlobsMap.key)
}
inline ::std::string* BlobsMap::mutable_key() {
  set_has_key();
  // @@protoc_insertion_point(field_mutable:caffe2.BlobsMap.key)
  return key_.MutableNoArena(&GetEmptyStringAlreadyInited());
}
inline ::std::string* BlobsMap::release_key() {
  // @@protoc_insertion_point(field_release:caffe2.BlobsMap.key)
  if (!has_key()) {
    return NULL;
  }
  clear_has_key();
  return key_.ReleaseNonDefaultNoArena(&GetEmptyStringAlreadyInited());
}
inline void BlobsMap::set_allocated_key(::std::string* key) {
  if (key != NULL) {
    set_has_key();
  } else {
    clear_has_key();
  }
  key_.SetAllocatedNoArena(&GetEmptyStringAlreadyInited(), key);
  // @@protoc_insertion_point(field_set_allocated:caffe2.BlobsMap.key)
}

// repeated string value = 2;
inline int BlobsMap::value_size() const {
  return value_.size();
}
inline void BlobsMap::clear_value() {
  value_.Clear();
}
inline const ::std::string& BlobsMap::value(int index) const {
  // @@protoc_insertion_point(field_get:caffe2.BlobsMap.value)
  return value_.Get(index);
}
inline ::std::string* BlobsMap::mutable_value(int index) {
  // @@protoc_insertion_point(field_mutable:caffe2.BlobsMap.value)
  return value_.Mutable(index);
}
inline void BlobsMap::set_value(int index, const ::std::string& value) {
  // @@protoc_insertion_point(field_set:caffe2.BlobsMap.value)
  value_.Mutable(index)->assign(value);
}
#if LANG_CXX11
inline void BlobsMap::set_value(int index, ::std::string&& value) {
  // @@protoc_insertion_point(field_set:caffe2.BlobsMap.value)
  value_.Mutable(index)->assign(std::move(value));
}
#endif
inline void BlobsMap::set_value(int index, const char* value) {
  GOOGLE_DCHECK(value != NULL);
  value_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:caffe2.BlobsMap.value)
}
inline void BlobsMap::set_value(int index, const char* value, size_t size) {
  value_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:caffe2.BlobsMap.value)
}
inline ::std::string* BlobsMap::add_value() {
  // @@protoc_insertion_point(field_add_mutable:caffe2.BlobsMap.value)
  return value_.Add();
}
inline void BlobsMap::add_value(const ::std::string& value) {
  value_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:caffe2.BlobsMap.value)
}
#if LANG_CXX11
inline void BlobsMap::add_value(::std::string&& value) {
  value_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:caffe2.BlobsMap.value)
}
#endif
inline void BlobsMap::add_value(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  value_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:caffe2.BlobsMap.value)
}
inline void BlobsMap::add_value(const char* value, size_t size) {
  value_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:caffe2.BlobsMap.value)
}
inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
BlobsMap::value() const {
  // @@protoc_insertion_point(field_list:caffe2.BlobsMap.value)
  return value_;
}
inline ::google::protobuf::RepeatedPtrField< ::std::string>*
BlobsMap::mutable_value() {
  // @@protoc_insertion_point(field_mutable_list:caffe2.BlobsMap.value)
  return &value_;
}

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

// NetsMap

// required string key = 1;
inline bool NetsMap::has_key() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void NetsMap::set_has_key() {
  _has_bits_[0] |= 0x00000001u;
}
inline void NetsMap::clear_has_key() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void NetsMap::clear_key() {
  key_.ClearToEmptyNoArena(&GetEmptyStringAlreadyInited());
  clear_has_key();
}
inline const ::std::string& NetsMap::key() const {
  // @@protoc_insertion_point(field_get:caffe2.NetsMap.key)
  return key_.GetNoArena();
}
inline void NetsMap::set_key(const ::std::string& value) {
  set_has_key();
  key_.SetNoArena(&GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:caffe2.NetsMap.key)
}
#if LANG_CXX11
inline void NetsMap::set_key(::std::string&& value) {
  set_has_key();
  key_.SetNoArena(
    &GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:caffe2.NetsMap.key)
}
#endif
inline void NetsMap::set_key(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_key();
  key_.SetNoArena(&GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:caffe2.NetsMap.key)
}
inline void NetsMap::set_key(const char* value, size_t size) {
  set_has_key();
  key_.SetNoArena(&GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:caffe2.NetsMap.key)
}
inline ::std::string* NetsMap::mutable_key() {
  set_has_key();
  // @@protoc_insertion_point(field_mutable:caffe2.NetsMap.key)
  return key_.MutableNoArena(&GetEmptyStringAlreadyInited());
}
inline ::std::string* NetsMap::release_key() {
  // @@protoc_insertion_point(field_release:caffe2.NetsMap.key)
  if (!has_key()) {
    return NULL;
  }
  clear_has_key();
  return key_.ReleaseNonDefaultNoArena(&GetEmptyStringAlreadyInited());
}
inline void NetsMap::set_allocated_key(::std::string* key) {
  if (key != NULL) {
    set_has_key();
  } else {
    clear_has_key();
  }
  key_.SetAllocatedNoArena(&GetEmptyStringAlreadyInited(), key);
  // @@protoc_insertion_point(field_set_allocated:caffe2.NetsMap.key)
}

// required .caffe2.NetDef value = 2;
inline bool NetsMap::has_value() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void NetsMap::set_has_value() {
  _has_bits_[0] |= 0x00000002u;
}
inline void NetsMap::clear_has_value() {
  _has_bits_[0] &= ~0x00000002u;
}
inline const ::caffe2::NetDef& NetsMap::_internal_value() const {
  return *value_;
}
inline const ::caffe2::NetDef& NetsMap::value() const {
  const ::caffe2::NetDef* p = value_;
  // @@protoc_insertion_point(field_get:caffe2.NetsMap.value)
  return p != NULL ? *p : *reinterpret_cast<const ::caffe2::NetDef*>(
      &::caffe2::_NetDef_default_instance_);
}
inline ::caffe2::NetDef* NetsMap::release_value() {
  // @@protoc_insertion_point(field_release:caffe2.NetsMap.value)
  clear_has_value();
  ::caffe2::NetDef* temp = value_;
  value_ = NULL;
  return temp;
}
inline ::caffe2::NetDef* NetsMap::mutable_value() {
  set_has_value();
  if (value_ == NULL) {
    auto* p = CreateMaybeMessage<::caffe2::NetDef>(GetArenaNoVirtual());
    value_ = p;
  }
  // @@protoc_insertion_point(field_mutable:caffe2.NetsMap.value)
  return value_;
}
inline void NetsMap::set_allocated_value(::caffe2::NetDef* value) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(value_);
  }
  if (value) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, value, submessage_arena);
    }
    set_has_value();
  } else {
    clear_has_value();
  }
  value_ = value;
  // @@protoc_insertion_point(field_set_allocated:caffe2.NetsMap.value)
}

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

// PlansMap

// required string key = 1;
inline bool PlansMap::has_key() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void PlansMap::set_has_key() {
  _has_bits_[0] |= 0x00000001u;
}
inline void PlansMap::clear_has_key() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void PlansMap::clear_key() {
  key_.ClearToEmptyNoArena(&GetEmptyStringAlreadyInited());
  clear_has_key();
}
inline const ::std::string& PlansMap::key() const {
  // @@protoc_insertion_point(field_get:caffe2.PlansMap.key)
  return key_.GetNoArena();
}
inline void PlansMap::set_key(const ::std::string& value) {
  set_has_key();
  key_.SetNoArena(&GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:caffe2.PlansMap.key)
}
#if LANG_CXX11
inline void PlansMap::set_key(::std::string&& value) {
  set_has_key();
  key_.SetNoArena(
    &GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:caffe2.PlansMap.key)
}
#endif
inline void PlansMap::set_key(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_key();
  key_.SetNoArena(&GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:caffe2.PlansMap.key)
}
inline void PlansMap::set_key(const char* value, size_t size) {
  set_has_key();
  key_.SetNoArena(&GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:caffe2.PlansMap.key)
}
inline ::std::string* PlansMap::mutable_key() {
  set_has_key();
  // @@protoc_insertion_point(field_mutable:caffe2.PlansMap.key)
  return key_.MutableNoArena(&GetEmptyStringAlreadyInited());
}
inline ::std::string* PlansMap::release_key() {
  // @@protoc_insertion_point(field_release:caffe2.PlansMap.key)
  if (!has_key()) {
    return NULL;
  }
  clear_has_key();
  return key_.ReleaseNonDefaultNoArena(&GetEmptyStringAlreadyInited());
}
inline void PlansMap::set_allocated_key(::std::string* key) {
  if (key != NULL) {
    set_has_key();
  } else {
    clear_has_key();
  }
  key_.SetAllocatedNoArena(&GetEmptyStringAlreadyInited(), key);
  // @@protoc_insertion_point(field_set_allocated:caffe2.PlansMap.key)
}

// required .caffe2.PlanDef value = 2;
inline bool PlansMap::has_value() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void PlansMap::set_has_value() {
  _has_bits_[0] |= 0x00000002u;
}
inline void PlansMap::clear_has_value() {
  _has_bits_[0] &= ~0x00000002u;
}
inline const ::caffe2::PlanDef& PlansMap::_internal_value() const {
  return *value_;
}
inline const ::caffe2::PlanDef& PlansMap::value() const {
  const ::caffe2::PlanDef* p = value_;
  // @@protoc_insertion_point(field_get:caffe2.PlansMap.value)
  return p != NULL ? *p : *reinterpret_cast<const ::caffe2::PlanDef*>(
      &::caffe2::_PlanDef_default_instance_);
}
inline ::caffe2::PlanDef* PlansMap::release_value() {
  // @@protoc_insertion_point(field_release:caffe2.PlansMap.value)
  clear_has_value();
  ::caffe2::PlanDef* temp = value_;
  value_ = NULL;
  return temp;
}
inline ::caffe2::PlanDef* PlansMap::mutable_value() {
  set_has_value();
  if (value_ == NULL) {
    auto* p = CreateMaybeMessage<::caffe2::PlanDef>(GetArenaNoVirtual());
    value_ = p;
  }
  // @@protoc_insertion_point(field_mutable:caffe2.PlansMap.value)
  return value_;
}
inline void PlansMap::set_allocated_value(::caffe2::PlanDef* value) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(value_);
  }
  if (value) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, value, submessage_arena);
    }
    set_has_value();
  } else {
    clear_has_value();
  }
  value_ = value;
  // @@protoc_insertion_point(field_set_allocated:caffe2.PlansMap.value)
}

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

// StringMap

// required string key = 1;
inline bool StringMap::has_key() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void StringMap::set_has_key() {
  _has_bits_[0] |= 0x00000001u;
}
inline void StringMap::clear_has_key() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void StringMap::clear_key() {
  key_.ClearToEmptyNoArena(&GetEmptyStringAlreadyInited());
  clear_has_key();
}
inline const ::std::string& StringMap::key() const {
  // @@protoc_insertion_point(field_get:caffe2.StringMap.key)
  return key_.GetNoArena();
}
inline void StringMap::set_key(const ::std::string& value) {
  set_has_key();
  key_.SetNoArena(&GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:caffe2.StringMap.key)
}
#if LANG_CXX11
inline void StringMap::set_key(::std::string&& value) {
  set_has_key();
  key_.SetNoArena(
    &GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:caffe2.StringMap.key)
}
#endif
inline void StringMap::set_key(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_key();
  key_.SetNoArena(&GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:caffe2.StringMap.key)
}
inline void StringMap::set_key(const char* value, size_t size) {
  set_has_key();
  key_.SetNoArena(&GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:caffe2.StringMap.key)
}
inline ::std::string* StringMap::mutable_key() {
  set_has_key();
  // @@protoc_insertion_point(field_mutable:caffe2.StringMap.key)
  return key_.MutableNoArena(&GetEmptyStringAlreadyInited());
}
inline ::std::string* StringMap::release_key() {
  // @@protoc_insertion_point(field_release:caffe2.StringMap.key)
  if (!has_key()) {
    return NULL;
  }
  clear_has_key();
  return key_.ReleaseNonDefaultNoArena(&GetEmptyStringAlreadyInited());
}
inline void StringMap::set_allocated_key(::std::string* key) {
  if (key != NULL) {
    set_has_key();
  } else {
    clear_has_key();
  }
  key_.SetAllocatedNoArena(&GetEmptyStringAlreadyInited(), key);
  // @@protoc_insertion_point(field_set_allocated:caffe2.StringMap.key)
}

// required string value = 2;
inline bool StringMap::has_value() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void StringMap::set_has_value() {
  _has_bits_[0] |= 0x00000002u;
}
inline void StringMap::clear_has_value() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void StringMap::clear_value() {
  value_.ClearToEmptyNoArena(&GetEmptyStringAlreadyInited());
  clear_has_value();
}
inline const ::std::string& StringMap::value() const {
  // @@protoc_insertion_point(field_get:caffe2.StringMap.value)
  return value_.GetNoArena();
}
inline void StringMap::set_value(const ::std::string& value) {
  set_has_value();
  value_.SetNoArena(&GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:caffe2.StringMap.value)
}
#if LANG_CXX11
inline void StringMap::set_value(::std::string&& value) {
  set_has_value();
  value_.SetNoArena(
    &GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:caffe2.StringMap.value)
}
#endif
inline void StringMap::set_value(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_value();
  value_.SetNoArena(&GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:caffe2.StringMap.value)
}
inline void StringMap::set_value(const char* value, size_t size) {
  set_has_value();
  value_.SetNoArena(&GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:caffe2.StringMap.value)
}
inline ::std::string* StringMap::mutable_value() {
  set_has_value();
  // @@protoc_insertion_point(field_mutable:caffe2.StringMap.value)
  return value_.MutableNoArena(&GetEmptyStringAlreadyInited());
}
inline ::std::string* StringMap::release_value() {
  // @@protoc_insertion_point(field_release:caffe2.StringMap.value)
  if (!has_value()) {
    return NULL;
  }
  clear_has_value();
  return value_.ReleaseNonDefaultNoArena(&GetEmptyStringAlreadyInited());
}
inline void StringMap::set_allocated_value(::std::string* value) {
  if (value != NULL) {
    set_has_value();
  } else {
    clear_has_value();
  }
  value_.SetAllocatedNoArena(&GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set_allocated:caffe2.StringMap.value)
}

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

// MetaNetDef

// repeated .caffe2.BlobsMap blobs = 1;
inline int MetaNetDef::blobs_size() const {
  return blobs_.size();
}
inline void MetaNetDef::clear_blobs() {
  blobs_.Clear();
}
inline ::caffe2::BlobsMap* MetaNetDef::mutable_blobs(int index) {
  // @@protoc_insertion_point(field_mutable:caffe2.MetaNetDef.blobs)
  return blobs_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::caffe2::BlobsMap >*
MetaNetDef::mutable_blobs() {
  // @@protoc_insertion_point(field_mutable_list:caffe2.MetaNetDef.blobs)
  return &blobs_;
}
inline const ::caffe2::BlobsMap& MetaNetDef::blobs(int index) const {
  // @@protoc_insertion_point(field_get:caffe2.MetaNetDef.blobs)
  return blobs_.Get(index);
}
inline ::caffe2::BlobsMap* MetaNetDef::add_blobs() {
  // @@protoc_insertion_point(field_add:caffe2.MetaNetDef.blobs)
  return blobs_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::caffe2::BlobsMap >&
MetaNetDef::blobs() const {
  // @@protoc_insertion_point(field_list:caffe2.MetaNetDef.blobs)
  return blobs_;
}

// repeated .caffe2.NetsMap nets = 2;
inline int MetaNetDef::nets_size() const {
  return nets_.size();
}
inline void MetaNetDef::clear_nets() {
  nets_.Clear();
}
inline ::caffe2::NetsMap* MetaNetDef::mutable_nets(int index) {
  // @@protoc_insertion_point(field_mutable:caffe2.MetaNetDef.nets)
  return nets_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::caffe2::NetsMap >*
MetaNetDef::mutable_nets() {
  // @@protoc_insertion_point(field_mutable_list:caffe2.MetaNetDef.nets)
  return &nets_;
}
inline const ::caffe2::NetsMap& MetaNetDef::nets(int index) const {
  // @@protoc_insertion_point(field_get:caffe2.MetaNetDef.nets)
  return nets_.Get(index);
}
inline ::caffe2::NetsMap* MetaNetDef::add_nets() {
  // @@protoc_insertion_point(field_add:caffe2.MetaNetDef.nets)
  return nets_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::caffe2::NetsMap >&
MetaNetDef::nets() const {
  // @@protoc_insertion_point(field_list:caffe2.MetaNetDef.nets)
  return nets_;
}

// optional .caffe2.ModelInfo modelInfo = 3;
inline bool MetaNetDef::has_modelinfo() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void MetaNetDef::set_has_modelinfo() {
  _has_bits_[0] |= 0x00000001u;
}
inline void MetaNetDef::clear_has_modelinfo() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void MetaNetDef::clear_modelinfo() {
  if (modelinfo_ != NULL) modelinfo_->Clear();
  clear_has_modelinfo();
}
inline const ::caffe2::ModelInfo& MetaNetDef::_internal_modelinfo() const {
  return *modelinfo_;
}
inline const ::caffe2::ModelInfo& MetaNetDef::modelinfo() const {
  const ::caffe2::ModelInfo* p = modelinfo_;
  // @@protoc_insertion_point(field_get:caffe2.MetaNetDef.modelInfo)
  return p != NULL ? *p : *reinterpret_cast<const ::caffe2::ModelInfo*>(
      &::caffe2::_ModelInfo_default_instance_);
}
inline ::caffe2::ModelInfo* MetaNetDef::release_modelinfo() {
  // @@protoc_insertion_point(field_release:caffe2.MetaNetDef.modelInfo)
  clear_has_modelinfo();
  ::caffe2::ModelInfo* temp = modelinfo_;
  modelinfo_ = NULL;
  return temp;
}
inline ::caffe2::ModelInfo* MetaNetDef::mutable_modelinfo() {
  set_has_modelinfo();
  if (modelinfo_ == NULL) {
    auto* p = CreateMaybeMessage<::caffe2::ModelInfo>(GetArenaNoVirtual());
    modelinfo_ = p;
  }
  // @@protoc_insertion_point(field_mutable:caffe2.MetaNetDef.modelInfo)
  return modelinfo_;
}
inline void MetaNetDef::set_allocated_modelinfo(::caffe2::ModelInfo* modelinfo) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete modelinfo_;
  }
  if (modelinfo) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      modelinfo = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, modelinfo, submessage_arena);
    }
    set_has_modelinfo();
  } else {
    clear_has_modelinfo();
  }
  modelinfo_ = modelinfo;
  // @@protoc_insertion_point(field_set_allocated:caffe2.MetaNetDef.modelInfo)
}

// repeated .caffe2.PlansMap plans = 4;
inline int MetaNetDef::plans_size() const {
  return plans_.size();
}
inline void MetaNetDef::clear_plans() {
  plans_.Clear();
}
inline ::caffe2::PlansMap* MetaNetDef::mutable_plans(int index) {
  // @@protoc_insertion_point(field_mutable:caffe2.MetaNetDef.plans)
  return plans_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::caffe2::PlansMap >*
MetaNetDef::mutable_plans() {
  // @@protoc_insertion_point(field_mutable_list:caffe2.MetaNetDef.plans)
  return &plans_;
}
inline const ::caffe2::PlansMap& MetaNetDef::plans(int index) const {
  // @@protoc_insertion_point(field_get:caffe2.MetaNetDef.plans)
  return plans_.Get(index);
}
inline ::caffe2::PlansMap* MetaNetDef::add_plans() {
  // @@protoc_insertion_point(field_add:caffe2.MetaNetDef.plans)
  return plans_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::caffe2::PlansMap >&
MetaNetDef::plans() const {
  // @@protoc_insertion_point(field_list:caffe2.MetaNetDef.plans)
  return plans_;
}

// repeated .caffe2.StringMap applicationSpecificInfo = 5;
inline int MetaNetDef::applicationspecificinfo_size() const {
  return applicationspecificinfo_.size();
}
inline void MetaNetDef::clear_applicationspecificinfo() {
  applicationspecificinfo_.Clear();
}
inline ::caffe2::StringMap* MetaNetDef::mutable_applicationspecificinfo(int index) {
  // @@protoc_insertion_point(field_mutable:caffe2.MetaNetDef.applicationSpecificInfo)
  return applicationspecificinfo_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::caffe2::StringMap >*
MetaNetDef::mutable_applicationspecificinfo() {
  // @@protoc_insertion_point(field_mutable_list:caffe2.MetaNetDef.applicationSpecificInfo)
  return &applicationspecificinfo_;
}
inline const ::caffe2::StringMap& MetaNetDef::applicationspecificinfo(int index) const {
  // @@protoc_insertion_point(field_get:caffe2.MetaNetDef.applicationSpecificInfo)
  return applicationspecificinfo_.Get(index);
}
inline ::caffe2::StringMap* MetaNetDef::add_applicationspecificinfo() {
  // @@protoc_insertion_point(field_add:caffe2.MetaNetDef.applicationSpecificInfo)
  return applicationspecificinfo_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::caffe2::StringMap >&
MetaNetDef::applicationspecificinfo() const {
  // @@protoc_insertion_point(field_list:caffe2.MetaNetDef.applicationSpecificInfo)
  return applicationspecificinfo_;
}

// repeated string blobsOrder = 6;
inline int MetaNetDef::blobsorder_size() const {
  return blobsorder_.size();
}
inline void MetaNetDef::clear_blobsorder() {
  blobsorder_.Clear();
}
inline const ::std::string& MetaNetDef::blobsorder(int index) const {
  // @@protoc_insertion_point(field_get:caffe2.MetaNetDef.blobsOrder)
  return blobsorder_.Get(index);
}
inline ::std::string* MetaNetDef::mutable_blobsorder(int index) {
  // @@protoc_insertion_point(field_mutable:caffe2.MetaNetDef.blobsOrder)
  return blobsorder_.Mutable(index);
}
inline void MetaNetDef::set_blobsorder(int index, const ::std::string& value) {
  // @@protoc_insertion_point(field_set:caffe2.MetaNetDef.blobsOrder)
  blobsorder_.Mutable(index)->assign(value);
}
#if LANG_CXX11
inline void MetaNetDef::set_blobsorder(int index, ::std::string&& value) {
  // @@protoc_insertion_point(field_set:caffe2.MetaNetDef.blobsOrder)
  blobsorder_.Mutable(index)->assign(std::move(value));
}
#endif
inline void MetaNetDef::set_blobsorder(int index, const char* value) {
  GOOGLE_DCHECK(value != NULL);
  blobsorder_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:caffe2.MetaNetDef.blobsOrder)
}
inline void MetaNetDef::set_blobsorder(int index, const char* value, size_t size) {
  blobsorder_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:caffe2.MetaNetDef.blobsOrder)
}
inline ::std::string* MetaNetDef::add_blobsorder() {
  // @@protoc_insertion_point(field_add_mutable:caffe2.MetaNetDef.blobsOrder)
  return blobsorder_.Add();
}
inline void MetaNetDef::add_blobsorder(const ::std::string& value) {
  blobsorder_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:caffe2.MetaNetDef.blobsOrder)
}
#if LANG_CXX11
inline void MetaNetDef::add_blobsorder(::std::string&& value) {
  blobsorder_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:caffe2.MetaNetDef.blobsOrder)
}
#endif
inline void MetaNetDef::add_blobsorder(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  blobsorder_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:caffe2.MetaNetDef.blobsOrder)
}
inline void MetaNetDef::add_blobsorder(const char* value, size_t size) {
  blobsorder_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:caffe2.MetaNetDef.blobsOrder)
}
inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
MetaNetDef::blobsorder() const {
  // @@protoc_insertion_point(field_list:caffe2.MetaNetDef.blobsOrder)
  return blobsorder_;
}
inline ::google::protobuf::RepeatedPtrField< ::std::string>*
MetaNetDef::mutable_blobsorder() {
  // @@protoc_insertion_point(field_mutable_list:caffe2.MetaNetDef.blobsOrder)
  return &blobsorder_;
}

// repeated string preLoadBlobs = 7;
inline int MetaNetDef::preloadblobs_size() const {
  return preloadblobs_.size();
}
inline void MetaNetDef::clear_preloadblobs() {
  preloadblobs_.Clear();
}
inline const ::std::string& MetaNetDef::preloadblobs(int index) const {
  // @@protoc_insertion_point(field_get:caffe2.MetaNetDef.preLoadBlobs)
  return preloadblobs_.Get(index);
}
inline ::std::string* MetaNetDef::mutable_preloadblobs(int index) {
  // @@protoc_insertion_point(field_mutable:caffe2.MetaNetDef.preLoadBlobs)
  return preloadblobs_.Mutable(index);
}
inline void MetaNetDef::set_preloadblobs(int index, const ::std::string& value) {
  // @@protoc_insertion_point(field_set:caffe2.MetaNetDef.preLoadBlobs)
  preloadblobs_.Mutable(index)->assign(value);
}
#if LANG_CXX11
inline void MetaNetDef::set_preloadblobs(int index, ::std::string&& value) {
  // @@protoc_insertion_point(field_set:caffe2.MetaNetDef.preLoadBlobs)
  preloadblobs_.Mutable(index)->assign(std::move(value));
}
#endif
inline void MetaNetDef::set_preloadblobs(int index, const char* value) {
  GOOGLE_DCHECK(value != NULL);
  preloadblobs_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:caffe2.MetaNetDef.preLoadBlobs)
}
inline void MetaNetDef::set_preloadblobs(int index, const char* value, size_t size) {
  preloadblobs_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:caffe2.MetaNetDef.preLoadBlobs)
}
inline ::std::string* MetaNetDef::add_preloadblobs() {
  // @@protoc_insertion_point(field_add_mutable:caffe2.MetaNetDef.preLoadBlobs)
  return preloadblobs_.Add();
}
inline void MetaNetDef::add_preloadblobs(const ::std::string& value) {
  preloadblobs_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:caffe2.MetaNetDef.preLoadBlobs)
}
#if LANG_CXX11
inline void MetaNetDef::add_preloadblobs(::std::string&& value) {
  preloadblobs_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:caffe2.MetaNetDef.preLoadBlobs)
}
#endif
inline void MetaNetDef::add_preloadblobs(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  preloadblobs_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:caffe2.MetaNetDef.preLoadBlobs)
}
inline void MetaNetDef::add_preloadblobs(const char* value, size_t size) {
  preloadblobs_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:caffe2.MetaNetDef.preLoadBlobs)
}
inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
MetaNetDef::preloadblobs() const {
  // @@protoc_insertion_point(field_list:caffe2.MetaNetDef.preLoadBlobs)
  return preloadblobs_;
}
inline ::google::protobuf::RepeatedPtrField< ::std::string>*
MetaNetDef::mutable_preloadblobs() {
  // @@protoc_insertion_point(field_mutable_list:caffe2.MetaNetDef.preLoadBlobs)
  return &preloadblobs_;
}

// optional .caffe2.TensorBoundShapes tensorBoundShapes = 8;
inline bool MetaNetDef::has_tensorboundshapes() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void MetaNetDef::set_has_tensorboundshapes() {
  _has_bits_[0] |= 0x00000002u;
}
inline void MetaNetDef::clear_has_tensorboundshapes() {
  _has_bits_[0] &= ~0x00000002u;
}
inline const ::caffe2::TensorBoundShapes& MetaNetDef::_internal_tensorboundshapes() const {
  return *tensorboundshapes_;
}
inline const ::caffe2::TensorBoundShapes& MetaNetDef::tensorboundshapes() const {
  const ::caffe2::TensorBoundShapes* p = tensorboundshapes_;
  // @@protoc_insertion_point(field_get:caffe2.MetaNetDef.tensorBoundShapes)
  return p != NULL ? *p : *reinterpret_cast<const ::caffe2::TensorBoundShapes*>(
      &::caffe2::_TensorBoundShapes_default_instance_);
}
inline ::caffe2::TensorBoundShapes* MetaNetDef::release_tensorboundshapes() {
  // @@protoc_insertion_point(field_release:caffe2.MetaNetDef.tensorBoundShapes)
  clear_has_tensorboundshapes();
  ::caffe2::TensorBoundShapes* temp = tensorboundshapes_;
  tensorboundshapes_ = NULL;
  return temp;
}
inline ::caffe2::TensorBoundShapes* MetaNetDef::mutable_tensorboundshapes() {
  set_has_tensorboundshapes();
  if (tensorboundshapes_ == NULL) {
    auto* p = CreateMaybeMessage<::caffe2::TensorBoundShapes>(GetArenaNoVirtual());
    tensorboundshapes_ = p;
  }
  // @@protoc_insertion_point(field_mutable:caffe2.MetaNetDef.tensorBoundShapes)
  return tensorboundshapes_;
}
inline void MetaNetDef::set_allocated_tensorboundshapes(::caffe2::TensorBoundShapes* tensorboundshapes) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(tensorboundshapes_);
  }
  if (tensorboundshapes) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      tensorboundshapes = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, tensorboundshapes, submessage_arena);
    }
    set_has_tensorboundshapes();
  } else {
    clear_has_tensorboundshapes();
  }
  tensorboundshapes_ = tensorboundshapes;
  // @@protoc_insertion_point(field_set_allocated:caffe2.MetaNetDef.tensorBoundShapes)
}

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

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

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

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

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


// @@protoc_insertion_point(namespace_scope)

}  // namespace caffe2

// @@protoc_insertion_point(global_scope)

#endif  // PROTOBUF_INCLUDED_caffe2_2fproto_2fmetanet_2eproto
