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

#ifndef GOOGLE_PROTOBUF_INCLUDED_grpcservice_2eproto
#define GOOGLE_PROTOBUF_INCLUDED_grpcservice_2eproto

#include <limits>
#include <string>

#include <google/protobuf/port_def.inc>
#if PROTOBUF_VERSION < 3013000
#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 3013000 < PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers. Please
#error regenerate this file with a newer version of protoc.
#endif

#include <google/protobuf/port_undef.inc>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/arena.h>
#include <google/protobuf/arenastring.h>
#include <google/protobuf/generated_message_table_driven.h>
#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/inlined_string_field.h>
#include <google/protobuf/metadata_lite.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/message.h>
#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
#include <google/protobuf/extension_set.h>  // IWYU pragma: export
#include <google/protobuf/unknown_field_set.h>
// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>
#define PROTOBUF_INTERNAL_EXPORT_grpcservice_2eproto
PROTOBUF_NAMESPACE_OPEN
namespace internal {
class AnyMetadata;
}  // namespace internal
PROTOBUF_NAMESPACE_CLOSE

// Internal implementation detail -- do not use these members.
struct TableStruct_grpcservice_2eproto {
  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[]
    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
  static const ::PROTOBUF_NAMESPACE_ID::internal::AuxiliaryParseTableField aux[]
    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[14]
    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
  static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[];
  static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[];
  static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[];
};
extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_grpcservice_2eproto;
namespace MatrixAi {
class QueryCameraReply;
class QueryCameraReplyDefaultTypeInternal;
extern QueryCameraReplyDefaultTypeInternal _QueryCameraReply_default_instance_;
class QueryCameraRequest;
class QueryCameraRequestDefaultTypeInternal;
extern QueryCameraRequestDefaultTypeInternal _QueryCameraRequest_default_instance_;
class QueryFTPReply;
class QueryFTPReplyDefaultTypeInternal;
extern QueryFTPReplyDefaultTypeInternal _QueryFTPReply_default_instance_;
class QueryFTPRequest;
class QueryFTPRequestDefaultTypeInternal;
extern QueryFTPRequestDefaultTypeInternal _QueryFTPRequest_default_instance_;
class QueryWorkstationReply;
class QueryWorkstationReplyDefaultTypeInternal;
extern QueryWorkstationReplyDefaultTypeInternal _QueryWorkstationReply_default_instance_;
class QueryWorkstationRequest;
class QueryWorkstationRequestDefaultTypeInternal;
extern QueryWorkstationRequestDefaultTypeInternal _QueryWorkstationRequest_default_instance_;
class Reply;
class ReplyDefaultTypeInternal;
extern ReplyDefaultTypeInternal _Reply_default_instance_;
class Request;
class RequestDefaultTypeInternal;
extern RequestDefaultTypeInternal _Request_default_instance_;
class UpdateCameraReply;
class UpdateCameraReplyDefaultTypeInternal;
extern UpdateCameraReplyDefaultTypeInternal _UpdateCameraReply_default_instance_;
class UpdateCameraRequest;
class UpdateCameraRequestDefaultTypeInternal;
extern UpdateCameraRequestDefaultTypeInternal _UpdateCameraRequest_default_instance_;
class UpdateFTPReply;
class UpdateFTPReplyDefaultTypeInternal;
extern UpdateFTPReplyDefaultTypeInternal _UpdateFTPReply_default_instance_;
class UpdateFTPRequest;
class UpdateFTPRequestDefaultTypeInternal;
extern UpdateFTPRequestDefaultTypeInternal _UpdateFTPRequest_default_instance_;
class UpdateWorkstationReply;
class UpdateWorkstationReplyDefaultTypeInternal;
extern UpdateWorkstationReplyDefaultTypeInternal _UpdateWorkstationReply_default_instance_;
class UpdateWorkstationRequest;
class UpdateWorkstationRequestDefaultTypeInternal;
extern UpdateWorkstationRequestDefaultTypeInternal _UpdateWorkstationRequest_default_instance_;
}  // namespace MatrixAi
PROTOBUF_NAMESPACE_OPEN
template<> ::MatrixAi::QueryCameraReply* Arena::CreateMaybeMessage<::MatrixAi::QueryCameraReply>(Arena*);
template<> ::MatrixAi::QueryCameraRequest* Arena::CreateMaybeMessage<::MatrixAi::QueryCameraRequest>(Arena*);
template<> ::MatrixAi::QueryFTPReply* Arena::CreateMaybeMessage<::MatrixAi::QueryFTPReply>(Arena*);
template<> ::MatrixAi::QueryFTPRequest* Arena::CreateMaybeMessage<::MatrixAi::QueryFTPRequest>(Arena*);
template<> ::MatrixAi::QueryWorkstationReply* Arena::CreateMaybeMessage<::MatrixAi::QueryWorkstationReply>(Arena*);
template<> ::MatrixAi::QueryWorkstationRequest* Arena::CreateMaybeMessage<::MatrixAi::QueryWorkstationRequest>(Arena*);
template<> ::MatrixAi::Reply* Arena::CreateMaybeMessage<::MatrixAi::Reply>(Arena*);
template<> ::MatrixAi::Request* Arena::CreateMaybeMessage<::MatrixAi::Request>(Arena*);
template<> ::MatrixAi::UpdateCameraReply* Arena::CreateMaybeMessage<::MatrixAi::UpdateCameraReply>(Arena*);
template<> ::MatrixAi::UpdateCameraRequest* Arena::CreateMaybeMessage<::MatrixAi::UpdateCameraRequest>(Arena*);
template<> ::MatrixAi::UpdateFTPReply* Arena::CreateMaybeMessage<::MatrixAi::UpdateFTPReply>(Arena*);
template<> ::MatrixAi::UpdateFTPRequest* Arena::CreateMaybeMessage<::MatrixAi::UpdateFTPRequest>(Arena*);
template<> ::MatrixAi::UpdateWorkstationReply* Arena::CreateMaybeMessage<::MatrixAi::UpdateWorkstationReply>(Arena*);
template<> ::MatrixAi::UpdateWorkstationRequest* Arena::CreateMaybeMessage<::MatrixAi::UpdateWorkstationRequest>(Arena*);
PROTOBUF_NAMESPACE_CLOSE
namespace MatrixAi {

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

class Request PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:MatrixAi.Request) */ {
 public:
  inline Request() : Request(nullptr) {}
  virtual ~Request();

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

  inline Request& operator=(const Request& from) {
    CopyFrom(from);
    return *this;
  }
  inline Request& operator=(Request&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const Request& default_instance();

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

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

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

  inline Request* New() const final {
    return CreateMaybeMessage<Request>(nullptr);
  }

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

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(Request* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "MatrixAi.Request";
  }
  protected:
  explicit Request(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_grpcservice_2eproto);
    return ::descriptor_table_grpcservice_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

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

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

  enum : int {
    kHeadFieldNumber = 1,
  };
  // uint32 head = 1;
  void clear_head();
  ::PROTOBUF_NAMESPACE_ID::uint32 head() const;
  void set_head(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_head() const;
  void _internal_set_head(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // @@protoc_insertion_point(class_scope:MatrixAi.Request)
 private:
  class _Internal;

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

class Reply PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:MatrixAi.Reply) */ {
 public:
  inline Reply() : Reply(nullptr) {}
  virtual ~Reply();

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

  inline Reply& operator=(const Reply& from) {
    CopyFrom(from);
    return *this;
  }
  inline Reply& operator=(Reply&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const Reply& default_instance();

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

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

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

  inline Reply* New() const final {
    return CreateMaybeMessage<Reply>(nullptr);
  }

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

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(Reply* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "MatrixAi.Reply";
  }
  protected:
  explicit Reply(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_grpcservice_2eproto);
    return ::descriptor_table_grpcservice_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

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

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

  enum : int {
    kErrorMsgFieldNumber = 1,
  };
  // string error_msg = 1;
  void clear_error_msg();
  const std::string& error_msg() const;
  void set_error_msg(const std::string& value);
  void set_error_msg(std::string&& value);
  void set_error_msg(const char* value);
  void set_error_msg(const char* value, size_t size);
  std::string* mutable_error_msg();
  std::string* release_error_msg();
  void set_allocated_error_msg(std::string* error_msg);
  private:
  const std::string& _internal_error_msg() const;
  void _internal_set_error_msg(const std::string& value);
  std::string* _internal_mutable_error_msg();
  public:

  // @@protoc_insertion_point(class_scope:MatrixAi.Reply)
 private:
  class _Internal;

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

class QueryWorkstationRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:MatrixAi.QueryWorkstationRequest) */ {
 public:
  inline QueryWorkstationRequest() : QueryWorkstationRequest(nullptr) {}
  virtual ~QueryWorkstationRequest();

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

  inline QueryWorkstationRequest& operator=(const QueryWorkstationRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline QueryWorkstationRequest& operator=(QueryWorkstationRequest&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const QueryWorkstationRequest& default_instance();

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

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

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

  inline QueryWorkstationRequest* New() const final {
    return CreateMaybeMessage<QueryWorkstationRequest>(nullptr);
  }

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

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(QueryWorkstationRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "MatrixAi.QueryWorkstationRequest";
  }
  protected:
  explicit QueryWorkstationRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_grpcservice_2eproto);
    return ::descriptor_table_grpcservice_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

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

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

  enum : int {
    kHeadFieldNumber = 1,
  };
  // uint32 head = 1;
  void clear_head();
  ::PROTOBUF_NAMESPACE_ID::uint32 head() const;
  void set_head(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_head() const;
  void _internal_set_head(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // @@protoc_insertion_point(class_scope:MatrixAi.QueryWorkstationRequest)
 private:
  class _Internal;

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

class QueryWorkstationReply PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:MatrixAi.QueryWorkstationReply) */ {
 public:
  inline QueryWorkstationReply() : QueryWorkstationReply(nullptr) {}
  virtual ~QueryWorkstationReply();

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

  inline QueryWorkstationReply& operator=(const QueryWorkstationReply& from) {
    CopyFrom(from);
    return *this;
  }
  inline QueryWorkstationReply& operator=(QueryWorkstationReply&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const QueryWorkstationReply& default_instance();

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

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

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

  inline QueryWorkstationReply* New() const final {
    return CreateMaybeMessage<QueryWorkstationReply>(nullptr);
  }

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

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(QueryWorkstationReply* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "MatrixAi.QueryWorkstationReply";
  }
  protected:
  explicit QueryWorkstationReply(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_grpcservice_2eproto);
    return ::descriptor_table_grpcservice_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

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

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

  enum : int {
    kNameFieldNumber = 1,
    kNameNoFieldNumber = 2,
    kErrorMsgFieldNumber = 3,
  };
  // string name = 1;
  void clear_name();
  const std::string& name() const;
  void set_name(const std::string& value);
  void set_name(std::string&& value);
  void set_name(const char* value);
  void set_name(const char* value, size_t size);
  std::string* mutable_name();
  std::string* release_name();
  void set_allocated_name(std::string* name);
  private:
  const std::string& _internal_name() const;
  void _internal_set_name(const std::string& value);
  std::string* _internal_mutable_name();
  public:

  // string name_no = 2;
  void clear_name_no();
  const std::string& name_no() const;
  void set_name_no(const std::string& value);
  void set_name_no(std::string&& value);
  void set_name_no(const char* value);
  void set_name_no(const char* value, size_t size);
  std::string* mutable_name_no();
  std::string* release_name_no();
  void set_allocated_name_no(std::string* name_no);
  private:
  const std::string& _internal_name_no() const;
  void _internal_set_name_no(const std::string& value);
  std::string* _internal_mutable_name_no();
  public:

  // string error_msg = 3;
  void clear_error_msg();
  const std::string& error_msg() const;
  void set_error_msg(const std::string& value);
  void set_error_msg(std::string&& value);
  void set_error_msg(const char* value);
  void set_error_msg(const char* value, size_t size);
  std::string* mutable_error_msg();
  std::string* release_error_msg();
  void set_allocated_error_msg(std::string* error_msg);
  private:
  const std::string& _internal_error_msg() const;
  void _internal_set_error_msg(const std::string& value);
  std::string* _internal_mutable_error_msg();
  public:

  // @@protoc_insertion_point(class_scope:MatrixAi.QueryWorkstationReply)
 private:
  class _Internal;

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

class UpdateWorkstationRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:MatrixAi.UpdateWorkstationRequest) */ {
 public:
  inline UpdateWorkstationRequest() : UpdateWorkstationRequest(nullptr) {}
  virtual ~UpdateWorkstationRequest();

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

  inline UpdateWorkstationRequest& operator=(const UpdateWorkstationRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline UpdateWorkstationRequest& operator=(UpdateWorkstationRequest&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const UpdateWorkstationRequest& default_instance();

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

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

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

  inline UpdateWorkstationRequest* New() const final {
    return CreateMaybeMessage<UpdateWorkstationRequest>(nullptr);
  }

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

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(UpdateWorkstationRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "MatrixAi.UpdateWorkstationRequest";
  }
  protected:
  explicit UpdateWorkstationRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_grpcservice_2eproto);
    return ::descriptor_table_grpcservice_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

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

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

  enum : int {
    kNameFieldNumber = 2,
    kNameNoFieldNumber = 3,
    kHeadFieldNumber = 1,
  };
  // string name = 2;
  void clear_name();
  const std::string& name() const;
  void set_name(const std::string& value);
  void set_name(std::string&& value);
  void set_name(const char* value);
  void set_name(const char* value, size_t size);
  std::string* mutable_name();
  std::string* release_name();
  void set_allocated_name(std::string* name);
  private:
  const std::string& _internal_name() const;
  void _internal_set_name(const std::string& value);
  std::string* _internal_mutable_name();
  public:

  // string name_no = 3;
  void clear_name_no();
  const std::string& name_no() const;
  void set_name_no(const std::string& value);
  void set_name_no(std::string&& value);
  void set_name_no(const char* value);
  void set_name_no(const char* value, size_t size);
  std::string* mutable_name_no();
  std::string* release_name_no();
  void set_allocated_name_no(std::string* name_no);
  private:
  const std::string& _internal_name_no() const;
  void _internal_set_name_no(const std::string& value);
  std::string* _internal_mutable_name_no();
  public:

  // uint32 head = 1;
  void clear_head();
  ::PROTOBUF_NAMESPACE_ID::uint32 head() const;
  void set_head(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_head() const;
  void _internal_set_head(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // @@protoc_insertion_point(class_scope:MatrixAi.UpdateWorkstationRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_no_;
  ::PROTOBUF_NAMESPACE_ID::uint32 head_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_grpcservice_2eproto;
};
// -------------------------------------------------------------------

class UpdateWorkstationReply PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:MatrixAi.UpdateWorkstationReply) */ {
 public:
  inline UpdateWorkstationReply() : UpdateWorkstationReply(nullptr) {}
  virtual ~UpdateWorkstationReply();

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

  inline UpdateWorkstationReply& operator=(const UpdateWorkstationReply& from) {
    CopyFrom(from);
    return *this;
  }
  inline UpdateWorkstationReply& operator=(UpdateWorkstationReply&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const UpdateWorkstationReply& default_instance();

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

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

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

  inline UpdateWorkstationReply* New() const final {
    return CreateMaybeMessage<UpdateWorkstationReply>(nullptr);
  }

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

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(UpdateWorkstationReply* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "MatrixAi.UpdateWorkstationReply";
  }
  protected:
  explicit UpdateWorkstationReply(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_grpcservice_2eproto);
    return ::descriptor_table_grpcservice_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

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

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

  enum : int {
    kErrorMsgFieldNumber = 1,
  };
  // string error_msg = 1;
  void clear_error_msg();
  const std::string& error_msg() const;
  void set_error_msg(const std::string& value);
  void set_error_msg(std::string&& value);
  void set_error_msg(const char* value);
  void set_error_msg(const char* value, size_t size);
  std::string* mutable_error_msg();
  std::string* release_error_msg();
  void set_allocated_error_msg(std::string* error_msg);
  private:
  const std::string& _internal_error_msg() const;
  void _internal_set_error_msg(const std::string& value);
  std::string* _internal_mutable_error_msg();
  public:

  // @@protoc_insertion_point(class_scope:MatrixAi.UpdateWorkstationReply)
 private:
  class _Internal;

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

class QueryCameraRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:MatrixAi.QueryCameraRequest) */ {
 public:
  inline QueryCameraRequest() : QueryCameraRequest(nullptr) {}
  virtual ~QueryCameraRequest();

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

  inline QueryCameraRequest& operator=(const QueryCameraRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline QueryCameraRequest& operator=(QueryCameraRequest&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const QueryCameraRequest& default_instance();

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

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

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

  inline QueryCameraRequest* New() const final {
    return CreateMaybeMessage<QueryCameraRequest>(nullptr);
  }

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

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(QueryCameraRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "MatrixAi.QueryCameraRequest";
  }
  protected:
  explicit QueryCameraRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_grpcservice_2eproto);
    return ::descriptor_table_grpcservice_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

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

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

  enum : int {
    kHeadFieldNumber = 1,
    kChannelIdFieldNumber = 2,
  };
  // uint32 head = 1;
  void clear_head();
  ::PROTOBUF_NAMESPACE_ID::uint32 head() const;
  void set_head(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_head() const;
  void _internal_set_head(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // uint32 channel_id = 2;
  void clear_channel_id();
  ::PROTOBUF_NAMESPACE_ID::uint32 channel_id() const;
  void set_channel_id(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_channel_id() const;
  void _internal_set_channel_id(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // @@protoc_insertion_point(class_scope:MatrixAi.QueryCameraRequest)
 private:
  class _Internal;

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

class QueryCameraReply PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:MatrixAi.QueryCameraReply) */ {
 public:
  inline QueryCameraReply() : QueryCameraReply(nullptr) {}
  virtual ~QueryCameraReply();

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

  inline QueryCameraReply& operator=(const QueryCameraReply& from) {
    CopyFrom(from);
    return *this;
  }
  inline QueryCameraReply& operator=(QueryCameraReply&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const QueryCameraReply& default_instance();

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

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

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

  inline QueryCameraReply* New() const final {
    return CreateMaybeMessage<QueryCameraReply>(nullptr);
  }

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

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(QueryCameraReply* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "MatrixAi.QueryCameraReply";
  }
  protected:
  explicit QueryCameraReply(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_grpcservice_2eproto);
    return ::descriptor_table_grpcservice_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

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

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

  enum : int {
    kUrlFieldNumber = 3,
    kErrorMsgFieldNumber = 8,
    kChannelIdFieldNumber = 1,
    kUseFieldNumber = 2,
    kSkipintervalFieldNumber = 4,
    kDirectionFieldNumber = 5,
    kLeftFirstFieldNumber = 6,
    kRightFirstFieldNumber = 7,
  };
  // string url = 3;
  void clear_url();
  const std::string& url() const;
  void set_url(const std::string& value);
  void set_url(std::string&& value);
  void set_url(const char* value);
  void set_url(const char* value, size_t size);
  std::string* mutable_url();
  std::string* release_url();
  void set_allocated_url(std::string* url);
  private:
  const std::string& _internal_url() const;
  void _internal_set_url(const std::string& value);
  std::string* _internal_mutable_url();
  public:

  // string error_msg = 8;
  void clear_error_msg();
  const std::string& error_msg() const;
  void set_error_msg(const std::string& value);
  void set_error_msg(std::string&& value);
  void set_error_msg(const char* value);
  void set_error_msg(const char* value, size_t size);
  std::string* mutable_error_msg();
  std::string* release_error_msg();
  void set_allocated_error_msg(std::string* error_msg);
  private:
  const std::string& _internal_error_msg() const;
  void _internal_set_error_msg(const std::string& value);
  std::string* _internal_mutable_error_msg();
  public:

  // uint32 channel_id = 1;
  void clear_channel_id();
  ::PROTOBUF_NAMESPACE_ID::uint32 channel_id() const;
  void set_channel_id(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_channel_id() const;
  void _internal_set_channel_id(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // bool use = 2;
  void clear_use();
  bool use() const;
  void set_use(bool value);
  private:
  bool _internal_use() const;
  void _internal_set_use(bool value);
  public:

  // uint32 skipinterval = 4;
  void clear_skipinterval();
  ::PROTOBUF_NAMESPACE_ID::uint32 skipinterval() const;
  void set_skipinterval(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_skipinterval() const;
  void _internal_set_skipinterval(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // uint32 direction = 5;
  void clear_direction();
  ::PROTOBUF_NAMESPACE_ID::uint32 direction() const;
  void set_direction(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_direction() const;
  void _internal_set_direction(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // uint32 left_first = 6;
  void clear_left_first();
  ::PROTOBUF_NAMESPACE_ID::uint32 left_first() const;
  void set_left_first(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_left_first() const;
  void _internal_set_left_first(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // uint32 right_first = 7;
  void clear_right_first();
  ::PROTOBUF_NAMESPACE_ID::uint32 right_first() const;
  void set_right_first(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_right_first() const;
  void _internal_set_right_first(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // @@protoc_insertion_point(class_scope:MatrixAi.QueryCameraReply)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr url_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr error_msg_;
  ::PROTOBUF_NAMESPACE_ID::uint32 channel_id_;
  bool use_;
  ::PROTOBUF_NAMESPACE_ID::uint32 skipinterval_;
  ::PROTOBUF_NAMESPACE_ID::uint32 direction_;
  ::PROTOBUF_NAMESPACE_ID::uint32 left_first_;
  ::PROTOBUF_NAMESPACE_ID::uint32 right_first_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_grpcservice_2eproto;
};
// -------------------------------------------------------------------

class UpdateCameraRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:MatrixAi.UpdateCameraRequest) */ {
 public:
  inline UpdateCameraRequest() : UpdateCameraRequest(nullptr) {}
  virtual ~UpdateCameraRequest();

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

  inline UpdateCameraRequest& operator=(const UpdateCameraRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline UpdateCameraRequest& operator=(UpdateCameraRequest&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const UpdateCameraRequest& default_instance();

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

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

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

  inline UpdateCameraRequest* New() const final {
    return CreateMaybeMessage<UpdateCameraRequest>(nullptr);
  }

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

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(UpdateCameraRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "MatrixAi.UpdateCameraRequest";
  }
  protected:
  explicit UpdateCameraRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_grpcservice_2eproto);
    return ::descriptor_table_grpcservice_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

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

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

  enum : int {
    kUrlFieldNumber = 4,
    kHeadFieldNumber = 1,
    kChannelIdFieldNumber = 2,
    kUseFieldNumber = 3,
    kSkipintervalFieldNumber = 5,
    kDirectionFieldNumber = 6,
    kLeftFirstFieldNumber = 7,
    kRightFirstFieldNumber = 8,
  };
  // string url = 4;
  void clear_url();
  const std::string& url() const;
  void set_url(const std::string& value);
  void set_url(std::string&& value);
  void set_url(const char* value);
  void set_url(const char* value, size_t size);
  std::string* mutable_url();
  std::string* release_url();
  void set_allocated_url(std::string* url);
  private:
  const std::string& _internal_url() const;
  void _internal_set_url(const std::string& value);
  std::string* _internal_mutable_url();
  public:

  // uint32 head = 1;
  void clear_head();
  ::PROTOBUF_NAMESPACE_ID::uint32 head() const;
  void set_head(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_head() const;
  void _internal_set_head(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // uint32 channel_id = 2;
  void clear_channel_id();
  ::PROTOBUF_NAMESPACE_ID::uint32 channel_id() const;
  void set_channel_id(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_channel_id() const;
  void _internal_set_channel_id(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // bool use = 3;
  void clear_use();
  bool use() const;
  void set_use(bool value);
  private:
  bool _internal_use() const;
  void _internal_set_use(bool value);
  public:

  // uint32 skipinterval = 5;
  void clear_skipinterval();
  ::PROTOBUF_NAMESPACE_ID::uint32 skipinterval() const;
  void set_skipinterval(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_skipinterval() const;
  void _internal_set_skipinterval(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // uint32 direction = 6;
  void clear_direction();
  ::PROTOBUF_NAMESPACE_ID::uint32 direction() const;
  void set_direction(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_direction() const;
  void _internal_set_direction(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // uint32 left_first = 7;
  void clear_left_first();
  ::PROTOBUF_NAMESPACE_ID::uint32 left_first() const;
  void set_left_first(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_left_first() const;
  void _internal_set_left_first(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // uint32 right_first = 8;
  void clear_right_first();
  ::PROTOBUF_NAMESPACE_ID::uint32 right_first() const;
  void set_right_first(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_right_first() const;
  void _internal_set_right_first(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // @@protoc_insertion_point(class_scope:MatrixAi.UpdateCameraRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr url_;
  ::PROTOBUF_NAMESPACE_ID::uint32 head_;
  ::PROTOBUF_NAMESPACE_ID::uint32 channel_id_;
  bool use_;
  ::PROTOBUF_NAMESPACE_ID::uint32 skipinterval_;
  ::PROTOBUF_NAMESPACE_ID::uint32 direction_;
  ::PROTOBUF_NAMESPACE_ID::uint32 left_first_;
  ::PROTOBUF_NAMESPACE_ID::uint32 right_first_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_grpcservice_2eproto;
};
// -------------------------------------------------------------------

class UpdateCameraReply PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:MatrixAi.UpdateCameraReply) */ {
 public:
  inline UpdateCameraReply() : UpdateCameraReply(nullptr) {}
  virtual ~UpdateCameraReply();

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

  inline UpdateCameraReply& operator=(const UpdateCameraReply& from) {
    CopyFrom(from);
    return *this;
  }
  inline UpdateCameraReply& operator=(UpdateCameraReply&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const UpdateCameraReply& default_instance();

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

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

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

  inline UpdateCameraReply* New() const final {
    return CreateMaybeMessage<UpdateCameraReply>(nullptr);
  }

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

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(UpdateCameraReply* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "MatrixAi.UpdateCameraReply";
  }
  protected:
  explicit UpdateCameraReply(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_grpcservice_2eproto);
    return ::descriptor_table_grpcservice_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

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

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

  enum : int {
    kErrorMsgFieldNumber = 2,
    kChannelIdFieldNumber = 1,
  };
  // string error_msg = 2;
  void clear_error_msg();
  const std::string& error_msg() const;
  void set_error_msg(const std::string& value);
  void set_error_msg(std::string&& value);
  void set_error_msg(const char* value);
  void set_error_msg(const char* value, size_t size);
  std::string* mutable_error_msg();
  std::string* release_error_msg();
  void set_allocated_error_msg(std::string* error_msg);
  private:
  const std::string& _internal_error_msg() const;
  void _internal_set_error_msg(const std::string& value);
  std::string* _internal_mutable_error_msg();
  public:

  // uint32 channel_id = 1;
  void clear_channel_id();
  ::PROTOBUF_NAMESPACE_ID::uint32 channel_id() const;
  void set_channel_id(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_channel_id() const;
  void _internal_set_channel_id(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // @@protoc_insertion_point(class_scope:MatrixAi.UpdateCameraReply)
 private:
  class _Internal;

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

class QueryFTPRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:MatrixAi.QueryFTPRequest) */ {
 public:
  inline QueryFTPRequest() : QueryFTPRequest(nullptr) {}
  virtual ~QueryFTPRequest();

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

  inline QueryFTPRequest& operator=(const QueryFTPRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline QueryFTPRequest& operator=(QueryFTPRequest&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const QueryFTPRequest& default_instance();

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

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

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

  inline QueryFTPRequest* New() const final {
    return CreateMaybeMessage<QueryFTPRequest>(nullptr);
  }

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

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(QueryFTPRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "MatrixAi.QueryFTPRequest";
  }
  protected:
  explicit QueryFTPRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_grpcservice_2eproto);
    return ::descriptor_table_grpcservice_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

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

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

  enum : int {
    kHeadFieldNumber = 1,
  };
  // uint32 head = 1;
  void clear_head();
  ::PROTOBUF_NAMESPACE_ID::uint32 head() const;
  void set_head(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_head() const;
  void _internal_set_head(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // @@protoc_insertion_point(class_scope:MatrixAi.QueryFTPRequest)
 private:
  class _Internal;

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

class QueryFTPReply PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:MatrixAi.QueryFTPReply) */ {
 public:
  inline QueryFTPReply() : QueryFTPReply(nullptr) {}
  virtual ~QueryFTPReply();

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

  inline QueryFTPReply& operator=(const QueryFTPReply& from) {
    CopyFrom(from);
    return *this;
  }
  inline QueryFTPReply& operator=(QueryFTPReply&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const QueryFTPReply& default_instance();

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

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

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

  inline QueryFTPReply* New() const final {
    return CreateMaybeMessage<QueryFTPReply>(nullptr);
  }

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

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(QueryFTPReply* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "MatrixAi.QueryFTPReply";
  }
  protected:
  explicit QueryFTPReply(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_grpcservice_2eproto);
    return ::descriptor_table_grpcservice_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

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

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

  enum : int {
    kUsernameFieldNumber = 2,
    kPasswordFieldNumber = 3,
    kIpFieldNumber = 4,
    kImagePathFieldNumber = 6,
    kErrorMsgFieldNumber = 8,
    kOpenFieldNumber = 1,
    kPortFieldNumber = 5,
    kQuitTimeFieldNumber = 7,
  };
  // string username = 2;
  void clear_username();
  const std::string& username() const;
  void set_username(const std::string& value);
  void set_username(std::string&& value);
  void set_username(const char* value);
  void set_username(const char* value, size_t size);
  std::string* mutable_username();
  std::string* release_username();
  void set_allocated_username(std::string* username);
  private:
  const std::string& _internal_username() const;
  void _internal_set_username(const std::string& value);
  std::string* _internal_mutable_username();
  public:

  // string password = 3;
  void clear_password();
  const std::string& password() const;
  void set_password(const std::string& value);
  void set_password(std::string&& value);
  void set_password(const char* value);
  void set_password(const char* value, size_t size);
  std::string* mutable_password();
  std::string* release_password();
  void set_allocated_password(std::string* password);
  private:
  const std::string& _internal_password() const;
  void _internal_set_password(const std::string& value);
  std::string* _internal_mutable_password();
  public:

  // string ip = 4;
  void clear_ip();
  const std::string& ip() const;
  void set_ip(const std::string& value);
  void set_ip(std::string&& value);
  void set_ip(const char* value);
  void set_ip(const char* value, size_t size);
  std::string* mutable_ip();
  std::string* release_ip();
  void set_allocated_ip(std::string* ip);
  private:
  const std::string& _internal_ip() const;
  void _internal_set_ip(const std::string& value);
  std::string* _internal_mutable_ip();
  public:

  // string image_path = 6;
  void clear_image_path();
  const std::string& image_path() const;
  void set_image_path(const std::string& value);
  void set_image_path(std::string&& value);
  void set_image_path(const char* value);
  void set_image_path(const char* value, size_t size);
  std::string* mutable_image_path();
  std::string* release_image_path();
  void set_allocated_image_path(std::string* image_path);
  private:
  const std::string& _internal_image_path() const;
  void _internal_set_image_path(const std::string& value);
  std::string* _internal_mutable_image_path();
  public:

  // string error_msg = 8;
  void clear_error_msg();
  const std::string& error_msg() const;
  void set_error_msg(const std::string& value);
  void set_error_msg(std::string&& value);
  void set_error_msg(const char* value);
  void set_error_msg(const char* value, size_t size);
  std::string* mutable_error_msg();
  std::string* release_error_msg();
  void set_allocated_error_msg(std::string* error_msg);
  private:
  const std::string& _internal_error_msg() const;
  void _internal_set_error_msg(const std::string& value);
  std::string* _internal_mutable_error_msg();
  public:

  // uint32 open = 1;
  void clear_open();
  ::PROTOBUF_NAMESPACE_ID::uint32 open() const;
  void set_open(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_open() const;
  void _internal_set_open(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // uint32 port = 5;
  void clear_port();
  ::PROTOBUF_NAMESPACE_ID::uint32 port() const;
  void set_port(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_port() const;
  void _internal_set_port(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // uint32 quit_time = 7;
  void clear_quit_time();
  ::PROTOBUF_NAMESPACE_ID::uint32 quit_time() const;
  void set_quit_time(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_quit_time() const;
  void _internal_set_quit_time(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // @@protoc_insertion_point(class_scope:MatrixAi.QueryFTPReply)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr username_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr password_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr ip_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr image_path_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr error_msg_;
  ::PROTOBUF_NAMESPACE_ID::uint32 open_;
  ::PROTOBUF_NAMESPACE_ID::uint32 port_;
  ::PROTOBUF_NAMESPACE_ID::uint32 quit_time_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_grpcservice_2eproto;
};
// -------------------------------------------------------------------

class UpdateFTPRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:MatrixAi.UpdateFTPRequest) */ {
 public:
  inline UpdateFTPRequest() : UpdateFTPRequest(nullptr) {}
  virtual ~UpdateFTPRequest();

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

  inline UpdateFTPRequest& operator=(const UpdateFTPRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline UpdateFTPRequest& operator=(UpdateFTPRequest&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const UpdateFTPRequest& default_instance();

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

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

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

  inline UpdateFTPRequest* New() const final {
    return CreateMaybeMessage<UpdateFTPRequest>(nullptr);
  }

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

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(UpdateFTPRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "MatrixAi.UpdateFTPRequest";
  }
  protected:
  explicit UpdateFTPRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_grpcservice_2eproto);
    return ::descriptor_table_grpcservice_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

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

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

  enum : int {
    kUsernameFieldNumber = 3,
    kPasswordFieldNumber = 4,
    kIpFieldNumber = 5,
    kImagePathFieldNumber = 7,
    kHeadFieldNumber = 1,
    kOpenFieldNumber = 2,
    kPortFieldNumber = 6,
    kQuitTimeFieldNumber = 8,
  };
  // string username = 3;
  void clear_username();
  const std::string& username() const;
  void set_username(const std::string& value);
  void set_username(std::string&& value);
  void set_username(const char* value);
  void set_username(const char* value, size_t size);
  std::string* mutable_username();
  std::string* release_username();
  void set_allocated_username(std::string* username);
  private:
  const std::string& _internal_username() const;
  void _internal_set_username(const std::string& value);
  std::string* _internal_mutable_username();
  public:

  // string password = 4;
  void clear_password();
  const std::string& password() const;
  void set_password(const std::string& value);
  void set_password(std::string&& value);
  void set_password(const char* value);
  void set_password(const char* value, size_t size);
  std::string* mutable_password();
  std::string* release_password();
  void set_allocated_password(std::string* password);
  private:
  const std::string& _internal_password() const;
  void _internal_set_password(const std::string& value);
  std::string* _internal_mutable_password();
  public:

  // string ip = 5;
  void clear_ip();
  const std::string& ip() const;
  void set_ip(const std::string& value);
  void set_ip(std::string&& value);
  void set_ip(const char* value);
  void set_ip(const char* value, size_t size);
  std::string* mutable_ip();
  std::string* release_ip();
  void set_allocated_ip(std::string* ip);
  private:
  const std::string& _internal_ip() const;
  void _internal_set_ip(const std::string& value);
  std::string* _internal_mutable_ip();
  public:

  // string image_path = 7;
  void clear_image_path();
  const std::string& image_path() const;
  void set_image_path(const std::string& value);
  void set_image_path(std::string&& value);
  void set_image_path(const char* value);
  void set_image_path(const char* value, size_t size);
  std::string* mutable_image_path();
  std::string* release_image_path();
  void set_allocated_image_path(std::string* image_path);
  private:
  const std::string& _internal_image_path() const;
  void _internal_set_image_path(const std::string& value);
  std::string* _internal_mutable_image_path();
  public:

  // uint32 head = 1;
  void clear_head();
  ::PROTOBUF_NAMESPACE_ID::uint32 head() const;
  void set_head(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_head() const;
  void _internal_set_head(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // uint32 open = 2;
  void clear_open();
  ::PROTOBUF_NAMESPACE_ID::uint32 open() const;
  void set_open(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_open() const;
  void _internal_set_open(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // uint32 port = 6;
  void clear_port();
  ::PROTOBUF_NAMESPACE_ID::uint32 port() const;
  void set_port(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_port() const;
  void _internal_set_port(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // uint32 quit_time = 8;
  void clear_quit_time();
  ::PROTOBUF_NAMESPACE_ID::uint32 quit_time() const;
  void set_quit_time(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_quit_time() const;
  void _internal_set_quit_time(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // @@protoc_insertion_point(class_scope:MatrixAi.UpdateFTPRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr username_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr password_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr ip_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr image_path_;
  ::PROTOBUF_NAMESPACE_ID::uint32 head_;
  ::PROTOBUF_NAMESPACE_ID::uint32 open_;
  ::PROTOBUF_NAMESPACE_ID::uint32 port_;
  ::PROTOBUF_NAMESPACE_ID::uint32 quit_time_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_grpcservice_2eproto;
};
// -------------------------------------------------------------------

class UpdateFTPReply PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:MatrixAi.UpdateFTPReply) */ {
 public:
  inline UpdateFTPReply() : UpdateFTPReply(nullptr) {}
  virtual ~UpdateFTPReply();

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

  inline UpdateFTPReply& operator=(const UpdateFTPReply& from) {
    CopyFrom(from);
    return *this;
  }
  inline UpdateFTPReply& operator=(UpdateFTPReply&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const UpdateFTPReply& default_instance();

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

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

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

  inline UpdateFTPReply* New() const final {
    return CreateMaybeMessage<UpdateFTPReply>(nullptr);
  }

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

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(UpdateFTPReply* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "MatrixAi.UpdateFTPReply";
  }
  protected:
  explicit UpdateFTPReply(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_grpcservice_2eproto);
    return ::descriptor_table_grpcservice_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

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

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

  enum : int {
    kErrorMsgFieldNumber = 1,
  };
  // string error_msg = 1;
  void clear_error_msg();
  const std::string& error_msg() const;
  void set_error_msg(const std::string& value);
  void set_error_msg(std::string&& value);
  void set_error_msg(const char* value);
  void set_error_msg(const char* value, size_t size);
  std::string* mutable_error_msg();
  std::string* release_error_msg();
  void set_allocated_error_msg(std::string* error_msg);
  private:
  const std::string& _internal_error_msg() const;
  void _internal_set_error_msg(const std::string& value);
  std::string* _internal_mutable_error_msg();
  public:

  // @@protoc_insertion_point(class_scope:MatrixAi.UpdateFTPReply)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr error_msg_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_grpcservice_2eproto;
};
// ===================================================================


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

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

// uint32 head = 1;
inline void Request::clear_head() {
  head_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 Request::_internal_head() const {
  return head_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 Request::head() const {
  // @@protoc_insertion_point(field_get:MatrixAi.Request.head)
  return _internal_head();
}
inline void Request::_internal_set_head(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  head_ = value;
}
inline void Request::set_head(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_head(value);
  // @@protoc_insertion_point(field_set:MatrixAi.Request.head)
}

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

// Reply

// string error_msg = 1;
inline void Reply::clear_error_msg() {
  error_msg_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& Reply::error_msg() const {
  // @@protoc_insertion_point(field_get:MatrixAi.Reply.error_msg)
  return _internal_error_msg();
}
inline void Reply::set_error_msg(const std::string& value) {
  _internal_set_error_msg(value);
  // @@protoc_insertion_point(field_set:MatrixAi.Reply.error_msg)
}
inline std::string* Reply::mutable_error_msg() {
  // @@protoc_insertion_point(field_mutable:MatrixAi.Reply.error_msg)
  return _internal_mutable_error_msg();
}
inline const std::string& Reply::_internal_error_msg() const {
  return error_msg_.Get();
}
inline void Reply::_internal_set_error_msg(const std::string& value) {
  
  error_msg_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void Reply::set_error_msg(std::string&& value) {
  
  error_msg_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:MatrixAi.Reply.error_msg)
}
inline void Reply::set_error_msg(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  error_msg_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:MatrixAi.Reply.error_msg)
}
inline void Reply::set_error_msg(const char* value,
    size_t size) {
  
  error_msg_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArena());
  // @@protoc_insertion_point(field_set_pointer:MatrixAi.Reply.error_msg)
}
inline std::string* Reply::_internal_mutable_error_msg() {
  
  return error_msg_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* Reply::release_error_msg() {
  // @@protoc_insertion_point(field_release:MatrixAi.Reply.error_msg)
  return error_msg_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void Reply::set_allocated_error_msg(std::string* error_msg) {
  if (error_msg != nullptr) {
    
  } else {
    
  }
  error_msg_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), error_msg,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:MatrixAi.Reply.error_msg)
}

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

// QueryWorkstationRequest

// uint32 head = 1;
inline void QueryWorkstationRequest::clear_head() {
  head_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 QueryWorkstationRequest::_internal_head() const {
  return head_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 QueryWorkstationRequest::head() const {
  // @@protoc_insertion_point(field_get:MatrixAi.QueryWorkstationRequest.head)
  return _internal_head();
}
inline void QueryWorkstationRequest::_internal_set_head(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  head_ = value;
}
inline void QueryWorkstationRequest::set_head(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_head(value);
  // @@protoc_insertion_point(field_set:MatrixAi.QueryWorkstationRequest.head)
}

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

// QueryWorkstationReply

// string name = 1;
inline void QueryWorkstationReply::clear_name() {
  name_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& QueryWorkstationReply::name() const {
  // @@protoc_insertion_point(field_get:MatrixAi.QueryWorkstationReply.name)
  return _internal_name();
}
inline void QueryWorkstationReply::set_name(const std::string& value) {
  _internal_set_name(value);
  // @@protoc_insertion_point(field_set:MatrixAi.QueryWorkstationReply.name)
}
inline std::string* QueryWorkstationReply::mutable_name() {
  // @@protoc_insertion_point(field_mutable:MatrixAi.QueryWorkstationReply.name)
  return _internal_mutable_name();
}
inline const std::string& QueryWorkstationReply::_internal_name() const {
  return name_.Get();
}
inline void QueryWorkstationReply::_internal_set_name(const std::string& value) {
  
  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void QueryWorkstationReply::set_name(std::string&& value) {
  
  name_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:MatrixAi.QueryWorkstationReply.name)
}
inline void QueryWorkstationReply::set_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:MatrixAi.QueryWorkstationReply.name)
}
inline void QueryWorkstationReply::set_name(const char* value,
    size_t size) {
  
  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArena());
  // @@protoc_insertion_point(field_set_pointer:MatrixAi.QueryWorkstationReply.name)
}
inline std::string* QueryWorkstationReply::_internal_mutable_name() {
  
  return name_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* QueryWorkstationReply::release_name() {
  // @@protoc_insertion_point(field_release:MatrixAi.QueryWorkstationReply.name)
  return name_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void QueryWorkstationReply::set_allocated_name(std::string* name) {
  if (name != nullptr) {
    
  } else {
    
  }
  name_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), name,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:MatrixAi.QueryWorkstationReply.name)
}

// string name_no = 2;
inline void QueryWorkstationReply::clear_name_no() {
  name_no_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& QueryWorkstationReply::name_no() const {
  // @@protoc_insertion_point(field_get:MatrixAi.QueryWorkstationReply.name_no)
  return _internal_name_no();
}
inline void QueryWorkstationReply::set_name_no(const std::string& value) {
  _internal_set_name_no(value);
  // @@protoc_insertion_point(field_set:MatrixAi.QueryWorkstationReply.name_no)
}
inline std::string* QueryWorkstationReply::mutable_name_no() {
  // @@protoc_insertion_point(field_mutable:MatrixAi.QueryWorkstationReply.name_no)
  return _internal_mutable_name_no();
}
inline const std::string& QueryWorkstationReply::_internal_name_no() const {
  return name_no_.Get();
}
inline void QueryWorkstationReply::_internal_set_name_no(const std::string& value) {
  
  name_no_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void QueryWorkstationReply::set_name_no(std::string&& value) {
  
  name_no_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:MatrixAi.QueryWorkstationReply.name_no)
}
inline void QueryWorkstationReply::set_name_no(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  name_no_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:MatrixAi.QueryWorkstationReply.name_no)
}
inline void QueryWorkstationReply::set_name_no(const char* value,
    size_t size) {
  
  name_no_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArena());
  // @@protoc_insertion_point(field_set_pointer:MatrixAi.QueryWorkstationReply.name_no)
}
inline std::string* QueryWorkstationReply::_internal_mutable_name_no() {
  
  return name_no_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* QueryWorkstationReply::release_name_no() {
  // @@protoc_insertion_point(field_release:MatrixAi.QueryWorkstationReply.name_no)
  return name_no_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void QueryWorkstationReply::set_allocated_name_no(std::string* name_no) {
  if (name_no != nullptr) {
    
  } else {
    
  }
  name_no_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), name_no,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:MatrixAi.QueryWorkstationReply.name_no)
}

// string error_msg = 3;
inline void QueryWorkstationReply::clear_error_msg() {
  error_msg_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& QueryWorkstationReply::error_msg() const {
  // @@protoc_insertion_point(field_get:MatrixAi.QueryWorkstationReply.error_msg)
  return _internal_error_msg();
}
inline void QueryWorkstationReply::set_error_msg(const std::string& value) {
  _internal_set_error_msg(value);
  // @@protoc_insertion_point(field_set:MatrixAi.QueryWorkstationReply.error_msg)
}
inline std::string* QueryWorkstationReply::mutable_error_msg() {
  // @@protoc_insertion_point(field_mutable:MatrixAi.QueryWorkstationReply.error_msg)
  return _internal_mutable_error_msg();
}
inline const std::string& QueryWorkstationReply::_internal_error_msg() const {
  return error_msg_.Get();
}
inline void QueryWorkstationReply::_internal_set_error_msg(const std::string& value) {
  
  error_msg_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void QueryWorkstationReply::set_error_msg(std::string&& value) {
  
  error_msg_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:MatrixAi.QueryWorkstationReply.error_msg)
}
inline void QueryWorkstationReply::set_error_msg(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  error_msg_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:MatrixAi.QueryWorkstationReply.error_msg)
}
inline void QueryWorkstationReply::set_error_msg(const char* value,
    size_t size) {
  
  error_msg_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArena());
  // @@protoc_insertion_point(field_set_pointer:MatrixAi.QueryWorkstationReply.error_msg)
}
inline std::string* QueryWorkstationReply::_internal_mutable_error_msg() {
  
  return error_msg_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* QueryWorkstationReply::release_error_msg() {
  // @@protoc_insertion_point(field_release:MatrixAi.QueryWorkstationReply.error_msg)
  return error_msg_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void QueryWorkstationReply::set_allocated_error_msg(std::string* error_msg) {
  if (error_msg != nullptr) {
    
  } else {
    
  }
  error_msg_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), error_msg,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:MatrixAi.QueryWorkstationReply.error_msg)
}

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

// UpdateWorkstationRequest

// uint32 head = 1;
inline void UpdateWorkstationRequest::clear_head() {
  head_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 UpdateWorkstationRequest::_internal_head() const {
  return head_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 UpdateWorkstationRequest::head() const {
  // @@protoc_insertion_point(field_get:MatrixAi.UpdateWorkstationRequest.head)
  return _internal_head();
}
inline void UpdateWorkstationRequest::_internal_set_head(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  head_ = value;
}
inline void UpdateWorkstationRequest::set_head(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_head(value);
  // @@protoc_insertion_point(field_set:MatrixAi.UpdateWorkstationRequest.head)
}

// string name = 2;
inline void UpdateWorkstationRequest::clear_name() {
  name_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& UpdateWorkstationRequest::name() const {
  // @@protoc_insertion_point(field_get:MatrixAi.UpdateWorkstationRequest.name)
  return _internal_name();
}
inline void UpdateWorkstationRequest::set_name(const std::string& value) {
  _internal_set_name(value);
  // @@protoc_insertion_point(field_set:MatrixAi.UpdateWorkstationRequest.name)
}
inline std::string* UpdateWorkstationRequest::mutable_name() {
  // @@protoc_insertion_point(field_mutable:MatrixAi.UpdateWorkstationRequest.name)
  return _internal_mutable_name();
}
inline const std::string& UpdateWorkstationRequest::_internal_name() const {
  return name_.Get();
}
inline void UpdateWorkstationRequest::_internal_set_name(const std::string& value) {
  
  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void UpdateWorkstationRequest::set_name(std::string&& value) {
  
  name_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:MatrixAi.UpdateWorkstationRequest.name)
}
inline void UpdateWorkstationRequest::set_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:MatrixAi.UpdateWorkstationRequest.name)
}
inline void UpdateWorkstationRequest::set_name(const char* value,
    size_t size) {
  
  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArena());
  // @@protoc_insertion_point(field_set_pointer:MatrixAi.UpdateWorkstationRequest.name)
}
inline std::string* UpdateWorkstationRequest::_internal_mutable_name() {
  
  return name_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* UpdateWorkstationRequest::release_name() {
  // @@protoc_insertion_point(field_release:MatrixAi.UpdateWorkstationRequest.name)
  return name_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void UpdateWorkstationRequest::set_allocated_name(std::string* name) {
  if (name != nullptr) {
    
  } else {
    
  }
  name_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), name,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:MatrixAi.UpdateWorkstationRequest.name)
}

// string name_no = 3;
inline void UpdateWorkstationRequest::clear_name_no() {
  name_no_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& UpdateWorkstationRequest::name_no() const {
  // @@protoc_insertion_point(field_get:MatrixAi.UpdateWorkstationRequest.name_no)
  return _internal_name_no();
}
inline void UpdateWorkstationRequest::set_name_no(const std::string& value) {
  _internal_set_name_no(value);
  // @@protoc_insertion_point(field_set:MatrixAi.UpdateWorkstationRequest.name_no)
}
inline std::string* UpdateWorkstationRequest::mutable_name_no() {
  // @@protoc_insertion_point(field_mutable:MatrixAi.UpdateWorkstationRequest.name_no)
  return _internal_mutable_name_no();
}
inline const std::string& UpdateWorkstationRequest::_internal_name_no() const {
  return name_no_.Get();
}
inline void UpdateWorkstationRequest::_internal_set_name_no(const std::string& value) {
  
  name_no_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void UpdateWorkstationRequest::set_name_no(std::string&& value) {
  
  name_no_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:MatrixAi.UpdateWorkstationRequest.name_no)
}
inline void UpdateWorkstationRequest::set_name_no(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  name_no_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:MatrixAi.UpdateWorkstationRequest.name_no)
}
inline void UpdateWorkstationRequest::set_name_no(const char* value,
    size_t size) {
  
  name_no_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArena());
  // @@protoc_insertion_point(field_set_pointer:MatrixAi.UpdateWorkstationRequest.name_no)
}
inline std::string* UpdateWorkstationRequest::_internal_mutable_name_no() {
  
  return name_no_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* UpdateWorkstationRequest::release_name_no() {
  // @@protoc_insertion_point(field_release:MatrixAi.UpdateWorkstationRequest.name_no)
  return name_no_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void UpdateWorkstationRequest::set_allocated_name_no(std::string* name_no) {
  if (name_no != nullptr) {
    
  } else {
    
  }
  name_no_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), name_no,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:MatrixAi.UpdateWorkstationRequest.name_no)
}

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

// UpdateWorkstationReply

// string error_msg = 1;
inline void UpdateWorkstationReply::clear_error_msg() {
  error_msg_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& UpdateWorkstationReply::error_msg() const {
  // @@protoc_insertion_point(field_get:MatrixAi.UpdateWorkstationReply.error_msg)
  return _internal_error_msg();
}
inline void UpdateWorkstationReply::set_error_msg(const std::string& value) {
  _internal_set_error_msg(value);
  // @@protoc_insertion_point(field_set:MatrixAi.UpdateWorkstationReply.error_msg)
}
inline std::string* UpdateWorkstationReply::mutable_error_msg() {
  // @@protoc_insertion_point(field_mutable:MatrixAi.UpdateWorkstationReply.error_msg)
  return _internal_mutable_error_msg();
}
inline const std::string& UpdateWorkstationReply::_internal_error_msg() const {
  return error_msg_.Get();
}
inline void UpdateWorkstationReply::_internal_set_error_msg(const std::string& value) {
  
  error_msg_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void UpdateWorkstationReply::set_error_msg(std::string&& value) {
  
  error_msg_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:MatrixAi.UpdateWorkstationReply.error_msg)
}
inline void UpdateWorkstationReply::set_error_msg(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  error_msg_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:MatrixAi.UpdateWorkstationReply.error_msg)
}
inline void UpdateWorkstationReply::set_error_msg(const char* value,
    size_t size) {
  
  error_msg_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArena());
  // @@protoc_insertion_point(field_set_pointer:MatrixAi.UpdateWorkstationReply.error_msg)
}
inline std::string* UpdateWorkstationReply::_internal_mutable_error_msg() {
  
  return error_msg_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* UpdateWorkstationReply::release_error_msg() {
  // @@protoc_insertion_point(field_release:MatrixAi.UpdateWorkstationReply.error_msg)
  return error_msg_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void UpdateWorkstationReply::set_allocated_error_msg(std::string* error_msg) {
  if (error_msg != nullptr) {
    
  } else {
    
  }
  error_msg_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), error_msg,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:MatrixAi.UpdateWorkstationReply.error_msg)
}

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

// QueryCameraRequest

// uint32 head = 1;
inline void QueryCameraRequest::clear_head() {
  head_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 QueryCameraRequest::_internal_head() const {
  return head_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 QueryCameraRequest::head() const {
  // @@protoc_insertion_point(field_get:MatrixAi.QueryCameraRequest.head)
  return _internal_head();
}
inline void QueryCameraRequest::_internal_set_head(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  head_ = value;
}
inline void QueryCameraRequest::set_head(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_head(value);
  // @@protoc_insertion_point(field_set:MatrixAi.QueryCameraRequest.head)
}

// uint32 channel_id = 2;
inline void QueryCameraRequest::clear_channel_id() {
  channel_id_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 QueryCameraRequest::_internal_channel_id() const {
  return channel_id_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 QueryCameraRequest::channel_id() const {
  // @@protoc_insertion_point(field_get:MatrixAi.QueryCameraRequest.channel_id)
  return _internal_channel_id();
}
inline void QueryCameraRequest::_internal_set_channel_id(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  channel_id_ = value;
}
inline void QueryCameraRequest::set_channel_id(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_channel_id(value);
  // @@protoc_insertion_point(field_set:MatrixAi.QueryCameraRequest.channel_id)
}

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

// QueryCameraReply

// uint32 channel_id = 1;
inline void QueryCameraReply::clear_channel_id() {
  channel_id_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 QueryCameraReply::_internal_channel_id() const {
  return channel_id_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 QueryCameraReply::channel_id() const {
  // @@protoc_insertion_point(field_get:MatrixAi.QueryCameraReply.channel_id)
  return _internal_channel_id();
}
inline void QueryCameraReply::_internal_set_channel_id(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  channel_id_ = value;
}
inline void QueryCameraReply::set_channel_id(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_channel_id(value);
  // @@protoc_insertion_point(field_set:MatrixAi.QueryCameraReply.channel_id)
}

// bool use = 2;
inline void QueryCameraReply::clear_use() {
  use_ = false;
}
inline bool QueryCameraReply::_internal_use() const {
  return use_;
}
inline bool QueryCameraReply::use() const {
  // @@protoc_insertion_point(field_get:MatrixAi.QueryCameraReply.use)
  return _internal_use();
}
inline void QueryCameraReply::_internal_set_use(bool value) {
  
  use_ = value;
}
inline void QueryCameraReply::set_use(bool value) {
  _internal_set_use(value);
  // @@protoc_insertion_point(field_set:MatrixAi.QueryCameraReply.use)
}

// string url = 3;
inline void QueryCameraReply::clear_url() {
  url_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& QueryCameraReply::url() const {
  // @@protoc_insertion_point(field_get:MatrixAi.QueryCameraReply.url)
  return _internal_url();
}
inline void QueryCameraReply::set_url(const std::string& value) {
  _internal_set_url(value);
  // @@protoc_insertion_point(field_set:MatrixAi.QueryCameraReply.url)
}
inline std::string* QueryCameraReply::mutable_url() {
  // @@protoc_insertion_point(field_mutable:MatrixAi.QueryCameraReply.url)
  return _internal_mutable_url();
}
inline const std::string& QueryCameraReply::_internal_url() const {
  return url_.Get();
}
inline void QueryCameraReply::_internal_set_url(const std::string& value) {
  
  url_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void QueryCameraReply::set_url(std::string&& value) {
  
  url_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:MatrixAi.QueryCameraReply.url)
}
inline void QueryCameraReply::set_url(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  url_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:MatrixAi.QueryCameraReply.url)
}
inline void QueryCameraReply::set_url(const char* value,
    size_t size) {
  
  url_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArena());
  // @@protoc_insertion_point(field_set_pointer:MatrixAi.QueryCameraReply.url)
}
inline std::string* QueryCameraReply::_internal_mutable_url() {
  
  return url_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* QueryCameraReply::release_url() {
  // @@protoc_insertion_point(field_release:MatrixAi.QueryCameraReply.url)
  return url_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void QueryCameraReply::set_allocated_url(std::string* url) {
  if (url != nullptr) {
    
  } else {
    
  }
  url_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), url,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:MatrixAi.QueryCameraReply.url)
}

// uint32 skipinterval = 4;
inline void QueryCameraReply::clear_skipinterval() {
  skipinterval_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 QueryCameraReply::_internal_skipinterval() const {
  return skipinterval_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 QueryCameraReply::skipinterval() const {
  // @@protoc_insertion_point(field_get:MatrixAi.QueryCameraReply.skipinterval)
  return _internal_skipinterval();
}
inline void QueryCameraReply::_internal_set_skipinterval(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  skipinterval_ = value;
}
inline void QueryCameraReply::set_skipinterval(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_skipinterval(value);
  // @@protoc_insertion_point(field_set:MatrixAi.QueryCameraReply.skipinterval)
}

// uint32 direction = 5;
inline void QueryCameraReply::clear_direction() {
  direction_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 QueryCameraReply::_internal_direction() const {
  return direction_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 QueryCameraReply::direction() const {
  // @@protoc_insertion_point(field_get:MatrixAi.QueryCameraReply.direction)
  return _internal_direction();
}
inline void QueryCameraReply::_internal_set_direction(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  direction_ = value;
}
inline void QueryCameraReply::set_direction(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_direction(value);
  // @@protoc_insertion_point(field_set:MatrixAi.QueryCameraReply.direction)
}

// uint32 left_first = 6;
inline void QueryCameraReply::clear_left_first() {
  left_first_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 QueryCameraReply::_internal_left_first() const {
  return left_first_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 QueryCameraReply::left_first() const {
  // @@protoc_insertion_point(field_get:MatrixAi.QueryCameraReply.left_first)
  return _internal_left_first();
}
inline void QueryCameraReply::_internal_set_left_first(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  left_first_ = value;
}
inline void QueryCameraReply::set_left_first(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_left_first(value);
  // @@protoc_insertion_point(field_set:MatrixAi.QueryCameraReply.left_first)
}

// uint32 right_first = 7;
inline void QueryCameraReply::clear_right_first() {
  right_first_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 QueryCameraReply::_internal_right_first() const {
  return right_first_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 QueryCameraReply::right_first() const {
  // @@protoc_insertion_point(field_get:MatrixAi.QueryCameraReply.right_first)
  return _internal_right_first();
}
inline void QueryCameraReply::_internal_set_right_first(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  right_first_ = value;
}
inline void QueryCameraReply::set_right_first(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_right_first(value);
  // @@protoc_insertion_point(field_set:MatrixAi.QueryCameraReply.right_first)
}

// string error_msg = 8;
inline void QueryCameraReply::clear_error_msg() {
  error_msg_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& QueryCameraReply::error_msg() const {
  // @@protoc_insertion_point(field_get:MatrixAi.QueryCameraReply.error_msg)
  return _internal_error_msg();
}
inline void QueryCameraReply::set_error_msg(const std::string& value) {
  _internal_set_error_msg(value);
  // @@protoc_insertion_point(field_set:MatrixAi.QueryCameraReply.error_msg)
}
inline std::string* QueryCameraReply::mutable_error_msg() {
  // @@protoc_insertion_point(field_mutable:MatrixAi.QueryCameraReply.error_msg)
  return _internal_mutable_error_msg();
}
inline const std::string& QueryCameraReply::_internal_error_msg() const {
  return error_msg_.Get();
}
inline void QueryCameraReply::_internal_set_error_msg(const std::string& value) {
  
  error_msg_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void QueryCameraReply::set_error_msg(std::string&& value) {
  
  error_msg_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:MatrixAi.QueryCameraReply.error_msg)
}
inline void QueryCameraReply::set_error_msg(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  error_msg_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:MatrixAi.QueryCameraReply.error_msg)
}
inline void QueryCameraReply::set_error_msg(const char* value,
    size_t size) {
  
  error_msg_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArena());
  // @@protoc_insertion_point(field_set_pointer:MatrixAi.QueryCameraReply.error_msg)
}
inline std::string* QueryCameraReply::_internal_mutable_error_msg() {
  
  return error_msg_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* QueryCameraReply::release_error_msg() {
  // @@protoc_insertion_point(field_release:MatrixAi.QueryCameraReply.error_msg)
  return error_msg_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void QueryCameraReply::set_allocated_error_msg(std::string* error_msg) {
  if (error_msg != nullptr) {
    
  } else {
    
  }
  error_msg_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), error_msg,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:MatrixAi.QueryCameraReply.error_msg)
}

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

// UpdateCameraRequest

// uint32 head = 1;
inline void UpdateCameraRequest::clear_head() {
  head_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 UpdateCameraRequest::_internal_head() const {
  return head_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 UpdateCameraRequest::head() const {
  // @@protoc_insertion_point(field_get:MatrixAi.UpdateCameraRequest.head)
  return _internal_head();
}
inline void UpdateCameraRequest::_internal_set_head(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  head_ = value;
}
inline void UpdateCameraRequest::set_head(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_head(value);
  // @@protoc_insertion_point(field_set:MatrixAi.UpdateCameraRequest.head)
}

// uint32 channel_id = 2;
inline void UpdateCameraRequest::clear_channel_id() {
  channel_id_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 UpdateCameraRequest::_internal_channel_id() const {
  return channel_id_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 UpdateCameraRequest::channel_id() const {
  // @@protoc_insertion_point(field_get:MatrixAi.UpdateCameraRequest.channel_id)
  return _internal_channel_id();
}
inline void UpdateCameraRequest::_internal_set_channel_id(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  channel_id_ = value;
}
inline void UpdateCameraRequest::set_channel_id(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_channel_id(value);
  // @@protoc_insertion_point(field_set:MatrixAi.UpdateCameraRequest.channel_id)
}

// bool use = 3;
inline void UpdateCameraRequest::clear_use() {
  use_ = false;
}
inline bool UpdateCameraRequest::_internal_use() const {
  return use_;
}
inline bool UpdateCameraRequest::use() const {
  // @@protoc_insertion_point(field_get:MatrixAi.UpdateCameraRequest.use)
  return _internal_use();
}
inline void UpdateCameraRequest::_internal_set_use(bool value) {
  
  use_ = value;
}
inline void UpdateCameraRequest::set_use(bool value) {
  _internal_set_use(value);
  // @@protoc_insertion_point(field_set:MatrixAi.UpdateCameraRequest.use)
}

// string url = 4;
inline void UpdateCameraRequest::clear_url() {
  url_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& UpdateCameraRequest::url() const {
  // @@protoc_insertion_point(field_get:MatrixAi.UpdateCameraRequest.url)
  return _internal_url();
}
inline void UpdateCameraRequest::set_url(const std::string& value) {
  _internal_set_url(value);
  // @@protoc_insertion_point(field_set:MatrixAi.UpdateCameraRequest.url)
}
inline std::string* UpdateCameraRequest::mutable_url() {
  // @@protoc_insertion_point(field_mutable:MatrixAi.UpdateCameraRequest.url)
  return _internal_mutable_url();
}
inline const std::string& UpdateCameraRequest::_internal_url() const {
  return url_.Get();
}
inline void UpdateCameraRequest::_internal_set_url(const std::string& value) {
  
  url_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void UpdateCameraRequest::set_url(std::string&& value) {
  
  url_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:MatrixAi.UpdateCameraRequest.url)
}
inline void UpdateCameraRequest::set_url(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  url_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:MatrixAi.UpdateCameraRequest.url)
}
inline void UpdateCameraRequest::set_url(const char* value,
    size_t size) {
  
  url_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArena());
  // @@protoc_insertion_point(field_set_pointer:MatrixAi.UpdateCameraRequest.url)
}
inline std::string* UpdateCameraRequest::_internal_mutable_url() {
  
  return url_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* UpdateCameraRequest::release_url() {
  // @@protoc_insertion_point(field_release:MatrixAi.UpdateCameraRequest.url)
  return url_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void UpdateCameraRequest::set_allocated_url(std::string* url) {
  if (url != nullptr) {
    
  } else {
    
  }
  url_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), url,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:MatrixAi.UpdateCameraRequest.url)
}

// uint32 skipinterval = 5;
inline void UpdateCameraRequest::clear_skipinterval() {
  skipinterval_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 UpdateCameraRequest::_internal_skipinterval() const {
  return skipinterval_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 UpdateCameraRequest::skipinterval() const {
  // @@protoc_insertion_point(field_get:MatrixAi.UpdateCameraRequest.skipinterval)
  return _internal_skipinterval();
}
inline void UpdateCameraRequest::_internal_set_skipinterval(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  skipinterval_ = value;
}
inline void UpdateCameraRequest::set_skipinterval(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_skipinterval(value);
  // @@protoc_insertion_point(field_set:MatrixAi.UpdateCameraRequest.skipinterval)
}

// uint32 direction = 6;
inline void UpdateCameraRequest::clear_direction() {
  direction_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 UpdateCameraRequest::_internal_direction() const {
  return direction_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 UpdateCameraRequest::direction() const {
  // @@protoc_insertion_point(field_get:MatrixAi.UpdateCameraRequest.direction)
  return _internal_direction();
}
inline void UpdateCameraRequest::_internal_set_direction(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  direction_ = value;
}
inline void UpdateCameraRequest::set_direction(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_direction(value);
  // @@protoc_insertion_point(field_set:MatrixAi.UpdateCameraRequest.direction)
}

// uint32 left_first = 7;
inline void UpdateCameraRequest::clear_left_first() {
  left_first_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 UpdateCameraRequest::_internal_left_first() const {
  return left_first_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 UpdateCameraRequest::left_first() const {
  // @@protoc_insertion_point(field_get:MatrixAi.UpdateCameraRequest.left_first)
  return _internal_left_first();
}
inline void UpdateCameraRequest::_internal_set_left_first(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  left_first_ = value;
}
inline void UpdateCameraRequest::set_left_first(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_left_first(value);
  // @@protoc_insertion_point(field_set:MatrixAi.UpdateCameraRequest.left_first)
}

// uint32 right_first = 8;
inline void UpdateCameraRequest::clear_right_first() {
  right_first_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 UpdateCameraRequest::_internal_right_first() const {
  return right_first_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 UpdateCameraRequest::right_first() const {
  // @@protoc_insertion_point(field_get:MatrixAi.UpdateCameraRequest.right_first)
  return _internal_right_first();
}
inline void UpdateCameraRequest::_internal_set_right_first(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  right_first_ = value;
}
inline void UpdateCameraRequest::set_right_first(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_right_first(value);
  // @@protoc_insertion_point(field_set:MatrixAi.UpdateCameraRequest.right_first)
}

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

// UpdateCameraReply

// uint32 channel_id = 1;
inline void UpdateCameraReply::clear_channel_id() {
  channel_id_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 UpdateCameraReply::_internal_channel_id() const {
  return channel_id_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 UpdateCameraReply::channel_id() const {
  // @@protoc_insertion_point(field_get:MatrixAi.UpdateCameraReply.channel_id)
  return _internal_channel_id();
}
inline void UpdateCameraReply::_internal_set_channel_id(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  channel_id_ = value;
}
inline void UpdateCameraReply::set_channel_id(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_channel_id(value);
  // @@protoc_insertion_point(field_set:MatrixAi.UpdateCameraReply.channel_id)
}

// string error_msg = 2;
inline void UpdateCameraReply::clear_error_msg() {
  error_msg_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& UpdateCameraReply::error_msg() const {
  // @@protoc_insertion_point(field_get:MatrixAi.UpdateCameraReply.error_msg)
  return _internal_error_msg();
}
inline void UpdateCameraReply::set_error_msg(const std::string& value) {
  _internal_set_error_msg(value);
  // @@protoc_insertion_point(field_set:MatrixAi.UpdateCameraReply.error_msg)
}
inline std::string* UpdateCameraReply::mutable_error_msg() {
  // @@protoc_insertion_point(field_mutable:MatrixAi.UpdateCameraReply.error_msg)
  return _internal_mutable_error_msg();
}
inline const std::string& UpdateCameraReply::_internal_error_msg() const {
  return error_msg_.Get();
}
inline void UpdateCameraReply::_internal_set_error_msg(const std::string& value) {
  
  error_msg_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void UpdateCameraReply::set_error_msg(std::string&& value) {
  
  error_msg_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:MatrixAi.UpdateCameraReply.error_msg)
}
inline void UpdateCameraReply::set_error_msg(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  error_msg_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:MatrixAi.UpdateCameraReply.error_msg)
}
inline void UpdateCameraReply::set_error_msg(const char* value,
    size_t size) {
  
  error_msg_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArena());
  // @@protoc_insertion_point(field_set_pointer:MatrixAi.UpdateCameraReply.error_msg)
}
inline std::string* UpdateCameraReply::_internal_mutable_error_msg() {
  
  return error_msg_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* UpdateCameraReply::release_error_msg() {
  // @@protoc_insertion_point(field_release:MatrixAi.UpdateCameraReply.error_msg)
  return error_msg_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void UpdateCameraReply::set_allocated_error_msg(std::string* error_msg) {
  if (error_msg != nullptr) {
    
  } else {
    
  }
  error_msg_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), error_msg,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:MatrixAi.UpdateCameraReply.error_msg)
}

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

// QueryFTPRequest

// uint32 head = 1;
inline void QueryFTPRequest::clear_head() {
  head_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 QueryFTPRequest::_internal_head() const {
  return head_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 QueryFTPRequest::head() const {
  // @@protoc_insertion_point(field_get:MatrixAi.QueryFTPRequest.head)
  return _internal_head();
}
inline void QueryFTPRequest::_internal_set_head(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  head_ = value;
}
inline void QueryFTPRequest::set_head(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_head(value);
  // @@protoc_insertion_point(field_set:MatrixAi.QueryFTPRequest.head)
}

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

// QueryFTPReply

// uint32 open = 1;
inline void QueryFTPReply::clear_open() {
  open_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 QueryFTPReply::_internal_open() const {
  return open_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 QueryFTPReply::open() const {
  // @@protoc_insertion_point(field_get:MatrixAi.QueryFTPReply.open)
  return _internal_open();
}
inline void QueryFTPReply::_internal_set_open(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  open_ = value;
}
inline void QueryFTPReply::set_open(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_open(value);
  // @@protoc_insertion_point(field_set:MatrixAi.QueryFTPReply.open)
}

// string username = 2;
inline void QueryFTPReply::clear_username() {
  username_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& QueryFTPReply::username() const {
  // @@protoc_insertion_point(field_get:MatrixAi.QueryFTPReply.username)
  return _internal_username();
}
inline void QueryFTPReply::set_username(const std::string& value) {
  _internal_set_username(value);
  // @@protoc_insertion_point(field_set:MatrixAi.QueryFTPReply.username)
}
inline std::string* QueryFTPReply::mutable_username() {
  // @@protoc_insertion_point(field_mutable:MatrixAi.QueryFTPReply.username)
  return _internal_mutable_username();
}
inline const std::string& QueryFTPReply::_internal_username() const {
  return username_.Get();
}
inline void QueryFTPReply::_internal_set_username(const std::string& value) {
  
  username_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void QueryFTPReply::set_username(std::string&& value) {
  
  username_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:MatrixAi.QueryFTPReply.username)
}
inline void QueryFTPReply::set_username(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  username_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:MatrixAi.QueryFTPReply.username)
}
inline void QueryFTPReply::set_username(const char* value,
    size_t size) {
  
  username_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArena());
  // @@protoc_insertion_point(field_set_pointer:MatrixAi.QueryFTPReply.username)
}
inline std::string* QueryFTPReply::_internal_mutable_username() {
  
  return username_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* QueryFTPReply::release_username() {
  // @@protoc_insertion_point(field_release:MatrixAi.QueryFTPReply.username)
  return username_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void QueryFTPReply::set_allocated_username(std::string* username) {
  if (username != nullptr) {
    
  } else {
    
  }
  username_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), username,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:MatrixAi.QueryFTPReply.username)
}

// string password = 3;
inline void QueryFTPReply::clear_password() {
  password_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& QueryFTPReply::password() const {
  // @@protoc_insertion_point(field_get:MatrixAi.QueryFTPReply.password)
  return _internal_password();
}
inline void QueryFTPReply::set_password(const std::string& value) {
  _internal_set_password(value);
  // @@protoc_insertion_point(field_set:MatrixAi.QueryFTPReply.password)
}
inline std::string* QueryFTPReply::mutable_password() {
  // @@protoc_insertion_point(field_mutable:MatrixAi.QueryFTPReply.password)
  return _internal_mutable_password();
}
inline const std::string& QueryFTPReply::_internal_password() const {
  return password_.Get();
}
inline void QueryFTPReply::_internal_set_password(const std::string& value) {
  
  password_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void QueryFTPReply::set_password(std::string&& value) {
  
  password_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:MatrixAi.QueryFTPReply.password)
}
inline void QueryFTPReply::set_password(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  password_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:MatrixAi.QueryFTPReply.password)
}
inline void QueryFTPReply::set_password(const char* value,
    size_t size) {
  
  password_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArena());
  // @@protoc_insertion_point(field_set_pointer:MatrixAi.QueryFTPReply.password)
}
inline std::string* QueryFTPReply::_internal_mutable_password() {
  
  return password_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* QueryFTPReply::release_password() {
  // @@protoc_insertion_point(field_release:MatrixAi.QueryFTPReply.password)
  return password_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void QueryFTPReply::set_allocated_password(std::string* password) {
  if (password != nullptr) {
    
  } else {
    
  }
  password_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), password,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:MatrixAi.QueryFTPReply.password)
}

// string ip = 4;
inline void QueryFTPReply::clear_ip() {
  ip_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& QueryFTPReply::ip() const {
  // @@protoc_insertion_point(field_get:MatrixAi.QueryFTPReply.ip)
  return _internal_ip();
}
inline void QueryFTPReply::set_ip(const std::string& value) {
  _internal_set_ip(value);
  // @@protoc_insertion_point(field_set:MatrixAi.QueryFTPReply.ip)
}
inline std::string* QueryFTPReply::mutable_ip() {
  // @@protoc_insertion_point(field_mutable:MatrixAi.QueryFTPReply.ip)
  return _internal_mutable_ip();
}
inline const std::string& QueryFTPReply::_internal_ip() const {
  return ip_.Get();
}
inline void QueryFTPReply::_internal_set_ip(const std::string& value) {
  
  ip_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void QueryFTPReply::set_ip(std::string&& value) {
  
  ip_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:MatrixAi.QueryFTPReply.ip)
}
inline void QueryFTPReply::set_ip(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  ip_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:MatrixAi.QueryFTPReply.ip)
}
inline void QueryFTPReply::set_ip(const char* value,
    size_t size) {
  
  ip_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArena());
  // @@protoc_insertion_point(field_set_pointer:MatrixAi.QueryFTPReply.ip)
}
inline std::string* QueryFTPReply::_internal_mutable_ip() {
  
  return ip_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* QueryFTPReply::release_ip() {
  // @@protoc_insertion_point(field_release:MatrixAi.QueryFTPReply.ip)
  return ip_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void QueryFTPReply::set_allocated_ip(std::string* ip) {
  if (ip != nullptr) {
    
  } else {
    
  }
  ip_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ip,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:MatrixAi.QueryFTPReply.ip)
}

// uint32 port = 5;
inline void QueryFTPReply::clear_port() {
  port_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 QueryFTPReply::_internal_port() const {
  return port_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 QueryFTPReply::port() const {
  // @@protoc_insertion_point(field_get:MatrixAi.QueryFTPReply.port)
  return _internal_port();
}
inline void QueryFTPReply::_internal_set_port(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  port_ = value;
}
inline void QueryFTPReply::set_port(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_port(value);
  // @@protoc_insertion_point(field_set:MatrixAi.QueryFTPReply.port)
}

// string image_path = 6;
inline void QueryFTPReply::clear_image_path() {
  image_path_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& QueryFTPReply::image_path() const {
  // @@protoc_insertion_point(field_get:MatrixAi.QueryFTPReply.image_path)
  return _internal_image_path();
}
inline void QueryFTPReply::set_image_path(const std::string& value) {
  _internal_set_image_path(value);
  // @@protoc_insertion_point(field_set:MatrixAi.QueryFTPReply.image_path)
}
inline std::string* QueryFTPReply::mutable_image_path() {
  // @@protoc_insertion_point(field_mutable:MatrixAi.QueryFTPReply.image_path)
  return _internal_mutable_image_path();
}
inline const std::string& QueryFTPReply::_internal_image_path() const {
  return image_path_.Get();
}
inline void QueryFTPReply::_internal_set_image_path(const std::string& value) {
  
  image_path_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void QueryFTPReply::set_image_path(std::string&& value) {
  
  image_path_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:MatrixAi.QueryFTPReply.image_path)
}
inline void QueryFTPReply::set_image_path(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  image_path_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:MatrixAi.QueryFTPReply.image_path)
}
inline void QueryFTPReply::set_image_path(const char* value,
    size_t size) {
  
  image_path_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArena());
  // @@protoc_insertion_point(field_set_pointer:MatrixAi.QueryFTPReply.image_path)
}
inline std::string* QueryFTPReply::_internal_mutable_image_path() {
  
  return image_path_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* QueryFTPReply::release_image_path() {
  // @@protoc_insertion_point(field_release:MatrixAi.QueryFTPReply.image_path)
  return image_path_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void QueryFTPReply::set_allocated_image_path(std::string* image_path) {
  if (image_path != nullptr) {
    
  } else {
    
  }
  image_path_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), image_path,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:MatrixAi.QueryFTPReply.image_path)
}

// uint32 quit_time = 7;
inline void QueryFTPReply::clear_quit_time() {
  quit_time_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 QueryFTPReply::_internal_quit_time() const {
  return quit_time_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 QueryFTPReply::quit_time() const {
  // @@protoc_insertion_point(field_get:MatrixAi.QueryFTPReply.quit_time)
  return _internal_quit_time();
}
inline void QueryFTPReply::_internal_set_quit_time(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  quit_time_ = value;
}
inline void QueryFTPReply::set_quit_time(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_quit_time(value);
  // @@protoc_insertion_point(field_set:MatrixAi.QueryFTPReply.quit_time)
}

// string error_msg = 8;
inline void QueryFTPReply::clear_error_msg() {
  error_msg_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& QueryFTPReply::error_msg() const {
  // @@protoc_insertion_point(field_get:MatrixAi.QueryFTPReply.error_msg)
  return _internal_error_msg();
}
inline void QueryFTPReply::set_error_msg(const std::string& value) {
  _internal_set_error_msg(value);
  // @@protoc_insertion_point(field_set:MatrixAi.QueryFTPReply.error_msg)
}
inline std::string* QueryFTPReply::mutable_error_msg() {
  // @@protoc_insertion_point(field_mutable:MatrixAi.QueryFTPReply.error_msg)
  return _internal_mutable_error_msg();
}
inline const std::string& QueryFTPReply::_internal_error_msg() const {
  return error_msg_.Get();
}
inline void QueryFTPReply::_internal_set_error_msg(const std::string& value) {
  
  error_msg_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void QueryFTPReply::set_error_msg(std::string&& value) {
  
  error_msg_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:MatrixAi.QueryFTPReply.error_msg)
}
inline void QueryFTPReply::set_error_msg(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  error_msg_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:MatrixAi.QueryFTPReply.error_msg)
}
inline void QueryFTPReply::set_error_msg(const char* value,
    size_t size) {
  
  error_msg_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArena());
  // @@protoc_insertion_point(field_set_pointer:MatrixAi.QueryFTPReply.error_msg)
}
inline std::string* QueryFTPReply::_internal_mutable_error_msg() {
  
  return error_msg_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* QueryFTPReply::release_error_msg() {
  // @@protoc_insertion_point(field_release:MatrixAi.QueryFTPReply.error_msg)
  return error_msg_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void QueryFTPReply::set_allocated_error_msg(std::string* error_msg) {
  if (error_msg != nullptr) {
    
  } else {
    
  }
  error_msg_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), error_msg,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:MatrixAi.QueryFTPReply.error_msg)
}

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

// UpdateFTPRequest

// uint32 head = 1;
inline void UpdateFTPRequest::clear_head() {
  head_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 UpdateFTPRequest::_internal_head() const {
  return head_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 UpdateFTPRequest::head() const {
  // @@protoc_insertion_point(field_get:MatrixAi.UpdateFTPRequest.head)
  return _internal_head();
}
inline void UpdateFTPRequest::_internal_set_head(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  head_ = value;
}
inline void UpdateFTPRequest::set_head(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_head(value);
  // @@protoc_insertion_point(field_set:MatrixAi.UpdateFTPRequest.head)
}

// uint32 open = 2;
inline void UpdateFTPRequest::clear_open() {
  open_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 UpdateFTPRequest::_internal_open() const {
  return open_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 UpdateFTPRequest::open() const {
  // @@protoc_insertion_point(field_get:MatrixAi.UpdateFTPRequest.open)
  return _internal_open();
}
inline void UpdateFTPRequest::_internal_set_open(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  open_ = value;
}
inline void UpdateFTPRequest::set_open(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_open(value);
  // @@protoc_insertion_point(field_set:MatrixAi.UpdateFTPRequest.open)
}

// string username = 3;
inline void UpdateFTPRequest::clear_username() {
  username_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& UpdateFTPRequest::username() const {
  // @@protoc_insertion_point(field_get:MatrixAi.UpdateFTPRequest.username)
  return _internal_username();
}
inline void UpdateFTPRequest::set_username(const std::string& value) {
  _internal_set_username(value);
  // @@protoc_insertion_point(field_set:MatrixAi.UpdateFTPRequest.username)
}
inline std::string* UpdateFTPRequest::mutable_username() {
  // @@protoc_insertion_point(field_mutable:MatrixAi.UpdateFTPRequest.username)
  return _internal_mutable_username();
}
inline const std::string& UpdateFTPRequest::_internal_username() const {
  return username_.Get();
}
inline void UpdateFTPRequest::_internal_set_username(const std::string& value) {
  
  username_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void UpdateFTPRequest::set_username(std::string&& value) {
  
  username_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:MatrixAi.UpdateFTPRequest.username)
}
inline void UpdateFTPRequest::set_username(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  username_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:MatrixAi.UpdateFTPRequest.username)
}
inline void UpdateFTPRequest::set_username(const char* value,
    size_t size) {
  
  username_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArena());
  // @@protoc_insertion_point(field_set_pointer:MatrixAi.UpdateFTPRequest.username)
}
inline std::string* UpdateFTPRequest::_internal_mutable_username() {
  
  return username_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* UpdateFTPRequest::release_username() {
  // @@protoc_insertion_point(field_release:MatrixAi.UpdateFTPRequest.username)
  return username_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void UpdateFTPRequest::set_allocated_username(std::string* username) {
  if (username != nullptr) {
    
  } else {
    
  }
  username_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), username,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:MatrixAi.UpdateFTPRequest.username)
}

// string password = 4;
inline void UpdateFTPRequest::clear_password() {
  password_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& UpdateFTPRequest::password() const {
  // @@protoc_insertion_point(field_get:MatrixAi.UpdateFTPRequest.password)
  return _internal_password();
}
inline void UpdateFTPRequest::set_password(const std::string& value) {
  _internal_set_password(value);
  // @@protoc_insertion_point(field_set:MatrixAi.UpdateFTPRequest.password)
}
inline std::string* UpdateFTPRequest::mutable_password() {
  // @@protoc_insertion_point(field_mutable:MatrixAi.UpdateFTPRequest.password)
  return _internal_mutable_password();
}
inline const std::string& UpdateFTPRequest::_internal_password() const {
  return password_.Get();
}
inline void UpdateFTPRequest::_internal_set_password(const std::string& value) {
  
  password_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void UpdateFTPRequest::set_password(std::string&& value) {
  
  password_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:MatrixAi.UpdateFTPRequest.password)
}
inline void UpdateFTPRequest::set_password(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  password_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:MatrixAi.UpdateFTPRequest.password)
}
inline void UpdateFTPRequest::set_password(const char* value,
    size_t size) {
  
  password_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArena());
  // @@protoc_insertion_point(field_set_pointer:MatrixAi.UpdateFTPRequest.password)
}
inline std::string* UpdateFTPRequest::_internal_mutable_password() {
  
  return password_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* UpdateFTPRequest::release_password() {
  // @@protoc_insertion_point(field_release:MatrixAi.UpdateFTPRequest.password)
  return password_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void UpdateFTPRequest::set_allocated_password(std::string* password) {
  if (password != nullptr) {
    
  } else {
    
  }
  password_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), password,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:MatrixAi.UpdateFTPRequest.password)
}

// string ip = 5;
inline void UpdateFTPRequest::clear_ip() {
  ip_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& UpdateFTPRequest::ip() const {
  // @@protoc_insertion_point(field_get:MatrixAi.UpdateFTPRequest.ip)
  return _internal_ip();
}
inline void UpdateFTPRequest::set_ip(const std::string& value) {
  _internal_set_ip(value);
  // @@protoc_insertion_point(field_set:MatrixAi.UpdateFTPRequest.ip)
}
inline std::string* UpdateFTPRequest::mutable_ip() {
  // @@protoc_insertion_point(field_mutable:MatrixAi.UpdateFTPRequest.ip)
  return _internal_mutable_ip();
}
inline const std::string& UpdateFTPRequest::_internal_ip() const {
  return ip_.Get();
}
inline void UpdateFTPRequest::_internal_set_ip(const std::string& value) {
  
  ip_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void UpdateFTPRequest::set_ip(std::string&& value) {
  
  ip_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:MatrixAi.UpdateFTPRequest.ip)
}
inline void UpdateFTPRequest::set_ip(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  ip_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:MatrixAi.UpdateFTPRequest.ip)
}
inline void UpdateFTPRequest::set_ip(const char* value,
    size_t size) {
  
  ip_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArena());
  // @@protoc_insertion_point(field_set_pointer:MatrixAi.UpdateFTPRequest.ip)
}
inline std::string* UpdateFTPRequest::_internal_mutable_ip() {
  
  return ip_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* UpdateFTPRequest::release_ip() {
  // @@protoc_insertion_point(field_release:MatrixAi.UpdateFTPRequest.ip)
  return ip_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void UpdateFTPRequest::set_allocated_ip(std::string* ip) {
  if (ip != nullptr) {
    
  } else {
    
  }
  ip_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ip,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:MatrixAi.UpdateFTPRequest.ip)
}

// uint32 port = 6;
inline void UpdateFTPRequest::clear_port() {
  port_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 UpdateFTPRequest::_internal_port() const {
  return port_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 UpdateFTPRequest::port() const {
  // @@protoc_insertion_point(field_get:MatrixAi.UpdateFTPRequest.port)
  return _internal_port();
}
inline void UpdateFTPRequest::_internal_set_port(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  port_ = value;
}
inline void UpdateFTPRequest::set_port(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_port(value);
  // @@protoc_insertion_point(field_set:MatrixAi.UpdateFTPRequest.port)
}

// string image_path = 7;
inline void UpdateFTPRequest::clear_image_path() {
  image_path_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& UpdateFTPRequest::image_path() const {
  // @@protoc_insertion_point(field_get:MatrixAi.UpdateFTPRequest.image_path)
  return _internal_image_path();
}
inline void UpdateFTPRequest::set_image_path(const std::string& value) {
  _internal_set_image_path(value);
  // @@protoc_insertion_point(field_set:MatrixAi.UpdateFTPRequest.image_path)
}
inline std::string* UpdateFTPRequest::mutable_image_path() {
  // @@protoc_insertion_point(field_mutable:MatrixAi.UpdateFTPRequest.image_path)
  return _internal_mutable_image_path();
}
inline const std::string& UpdateFTPRequest::_internal_image_path() const {
  return image_path_.Get();
}
inline void UpdateFTPRequest::_internal_set_image_path(const std::string& value) {
  
  image_path_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void UpdateFTPRequest::set_image_path(std::string&& value) {
  
  image_path_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:MatrixAi.UpdateFTPRequest.image_path)
}
inline void UpdateFTPRequest::set_image_path(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  image_path_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:MatrixAi.UpdateFTPRequest.image_path)
}
inline void UpdateFTPRequest::set_image_path(const char* value,
    size_t size) {
  
  image_path_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArena());
  // @@protoc_insertion_point(field_set_pointer:MatrixAi.UpdateFTPRequest.image_path)
}
inline std::string* UpdateFTPRequest::_internal_mutable_image_path() {
  
  return image_path_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* UpdateFTPRequest::release_image_path() {
  // @@protoc_insertion_point(field_release:MatrixAi.UpdateFTPRequest.image_path)
  return image_path_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void UpdateFTPRequest::set_allocated_image_path(std::string* image_path) {
  if (image_path != nullptr) {
    
  } else {
    
  }
  image_path_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), image_path,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:MatrixAi.UpdateFTPRequest.image_path)
}

// uint32 quit_time = 8;
inline void UpdateFTPRequest::clear_quit_time() {
  quit_time_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 UpdateFTPRequest::_internal_quit_time() const {
  return quit_time_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 UpdateFTPRequest::quit_time() const {
  // @@protoc_insertion_point(field_get:MatrixAi.UpdateFTPRequest.quit_time)
  return _internal_quit_time();
}
inline void UpdateFTPRequest::_internal_set_quit_time(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  quit_time_ = value;
}
inline void UpdateFTPRequest::set_quit_time(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_quit_time(value);
  // @@protoc_insertion_point(field_set:MatrixAi.UpdateFTPRequest.quit_time)
}

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

// UpdateFTPReply

// string error_msg = 1;
inline void UpdateFTPReply::clear_error_msg() {
  error_msg_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& UpdateFTPReply::error_msg() const {
  // @@protoc_insertion_point(field_get:MatrixAi.UpdateFTPReply.error_msg)
  return _internal_error_msg();
}
inline void UpdateFTPReply::set_error_msg(const std::string& value) {
  _internal_set_error_msg(value);
  // @@protoc_insertion_point(field_set:MatrixAi.UpdateFTPReply.error_msg)
}
inline std::string* UpdateFTPReply::mutable_error_msg() {
  // @@protoc_insertion_point(field_mutable:MatrixAi.UpdateFTPReply.error_msg)
  return _internal_mutable_error_msg();
}
inline const std::string& UpdateFTPReply::_internal_error_msg() const {
  return error_msg_.Get();
}
inline void UpdateFTPReply::_internal_set_error_msg(const std::string& value) {
  
  error_msg_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void UpdateFTPReply::set_error_msg(std::string&& value) {
  
  error_msg_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:MatrixAi.UpdateFTPReply.error_msg)
}
inline void UpdateFTPReply::set_error_msg(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  error_msg_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:MatrixAi.UpdateFTPReply.error_msg)
}
inline void UpdateFTPReply::set_error_msg(const char* value,
    size_t size) {
  
  error_msg_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArena());
  // @@protoc_insertion_point(field_set_pointer:MatrixAi.UpdateFTPReply.error_msg)
}
inline std::string* UpdateFTPReply::_internal_mutable_error_msg() {
  
  return error_msg_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* UpdateFTPReply::release_error_msg() {
  // @@protoc_insertion_point(field_release:MatrixAi.UpdateFTPReply.error_msg)
  return error_msg_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void UpdateFTPReply::set_allocated_error_msg(std::string* error_msg) {
  if (error_msg != nullptr) {
    
  } else {
    
  }
  error_msg_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), error_msg,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:MatrixAi.UpdateFTPReply.error_msg)
}

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

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

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

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

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

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

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

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

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

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

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

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

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


// @@protoc_insertion_point(namespace_scope)

}  // namespace MatrixAi

// @@protoc_insertion_point(global_scope)

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