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

#include "globalmsg.pb.h"

#include <algorithm>

#include <google/protobuf/stubs/common.h>
#include <google/protobuf/stubs/port.h>
#include <google/protobuf/stubs/once.h>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/wire_format_lite_inl.h>
#include <google/protobuf/descriptor.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/reflection_ops.h>
#include <google/protobuf/wire_format.h>
// This is a temporary google only hack
#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
#include "third_party/protobuf/version.h"
#endif
// @@protoc_insertion_point(includes)
namespace globalmsg {
class msgDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<msg>
      _instance;
} _msg_default_instance_;
class laserMsgDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<laserMsg>
      _instance;
} _laserMsg_default_instance_;
class plcMsgDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<plcMsg>
      _instance;
} _plcMsg_default_instance_;
class resultInfoDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<resultInfo>
      _instance;
} _resultInfo_default_instance_;
class algMsgDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<algMsg>
      _instance;
} _algMsg_default_instance_;
class SysMsgDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<SysMsg>
      _instance;
} _SysMsg_default_instance_;
}  // namespace globalmsg
namespace protobuf_globalmsg_2eproto {
void InitDefaultsmsgImpl() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
#else
  ::google::protobuf::internal::InitProtobufDefaults();
#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
  protobuf_globalmsg_2eproto::InitDefaultslaserMsg();
  protobuf_globalmsg_2eproto::InitDefaultsplcMsg();
  protobuf_globalmsg_2eproto::InitDefaultsalgMsg();
  protobuf_globalmsg_2eproto::InitDefaultsSysMsg();
  {
    void* ptr = &::globalmsg::_msg_default_instance_;
    new (ptr) ::globalmsg::msg();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::globalmsg::msg::InitAsDefaultInstance();
}

void InitDefaultsmsg() {
  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsmsgImpl);
}

void InitDefaultslaserMsgImpl() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
#else
  ::google::protobuf::internal::InitProtobufDefaults();
#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
  {
    void* ptr = &::globalmsg::_laserMsg_default_instance_;
    new (ptr) ::globalmsg::laserMsg();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::globalmsg::laserMsg::InitAsDefaultInstance();
}

void InitDefaultslaserMsg() {
  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultslaserMsgImpl);
}

void InitDefaultsplcMsgImpl() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
#else
  ::google::protobuf::internal::InitProtobufDefaults();
#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
  {
    void* ptr = &::globalmsg::_plcMsg_default_instance_;
    new (ptr) ::globalmsg::plcMsg();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::globalmsg::plcMsg::InitAsDefaultInstance();
}

void InitDefaultsplcMsg() {
  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsplcMsgImpl);
}

void InitDefaultsresultInfoImpl() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
#else
  ::google::protobuf::internal::InitProtobufDefaults();
#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
  {
    void* ptr = &::globalmsg::_resultInfo_default_instance_;
    new (ptr) ::globalmsg::resultInfo();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::globalmsg::resultInfo::InitAsDefaultInstance();
}

void InitDefaultsresultInfo() {
  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsresultInfoImpl);
}

void InitDefaultsalgMsgImpl() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
#else
  ::google::protobuf::internal::InitProtobufDefaults();
#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
  protobuf_globalmsg_2eproto::InitDefaultsresultInfo();
  {
    void* ptr = &::globalmsg::_algMsg_default_instance_;
    new (ptr) ::globalmsg::algMsg();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::globalmsg::algMsg::InitAsDefaultInstance();
}

void InitDefaultsalgMsg() {
  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsalgMsgImpl);
}

void InitDefaultsSysMsgImpl() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
#else
  ::google::protobuf::internal::InitProtobufDefaults();
#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
  {
    void* ptr = &::globalmsg::_SysMsg_default_instance_;
    new (ptr) ::globalmsg::SysMsg();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::globalmsg::SysMsg::InitAsDefaultInstance();
}

void InitDefaultsSysMsg() {
  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsSysMsgImpl);
}

::google::protobuf::Metadata file_level_metadata[6];
const ::google::protobuf::EnumDescriptor* file_level_enum_descriptors[4];

const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::globalmsg::msg, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::globalmsg::msg, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::globalmsg::msg, msg_type_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::globalmsg::msg, laser_msg_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::globalmsg::msg, plc_msg_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::globalmsg::msg, alg_msg_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::globalmsg::msg, sys_msg_),
  4,
  0,
  1,
  2,
  3,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::globalmsg::laserMsg, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::globalmsg::laserMsg, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::globalmsg::laserMsg, laser_status_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::globalmsg::laserMsg, queue_data_count_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::globalmsg::laserMsg, cloud_count_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::globalmsg::laserMsg, id_),
  0,
  1,
  2,
  3,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::globalmsg::plcMsg, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::globalmsg::plcMsg, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::globalmsg::plcMsg, plc_status_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::globalmsg::plcMsg, plc_values_),
  0,
  ~0u,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::globalmsg::resultInfo, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::globalmsg::resultInfo, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::globalmsg::resultInfo, time_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::globalmsg::resultInfo, correctness_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::globalmsg::resultInfo, park_space_id_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::globalmsg::resultInfo, laser_ids_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::globalmsg::resultInfo, x_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::globalmsg::resultInfo, y_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::globalmsg::resultInfo, c_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::globalmsg::resultInfo, wheel_base_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::globalmsg::resultInfo, length_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::globalmsg::resultInfo, width_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::globalmsg::resultInfo, height_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::globalmsg::resultInfo, error_),
  0,
  2,
  3,
  11,
  4,
  5,
  6,
  7,
  8,
  9,
  10,
  1,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::globalmsg::algMsg, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::globalmsg::algMsg, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::globalmsg::algMsg, result_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::globalmsg::algMsg, thread_queue_size_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::globalmsg::algMsg, log_path_),
  ~0u,
  1,
  0,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::globalmsg::SysMsg, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::globalmsg::SysMsg, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::globalmsg::SysMsg, log_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::globalmsg::SysMsg, level_),
  0,
  1,
};
static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
  { 0, 10, sizeof(::globalmsg::msg)},
  { 15, 24, sizeof(::globalmsg::laserMsg)},
  { 28, 35, sizeof(::globalmsg::plcMsg)},
  { 37, 54, sizeof(::globalmsg::resultInfo)},
  { 66, 74, sizeof(::globalmsg::algMsg)},
  { 77, 84, sizeof(::globalmsg::SysMsg)},
};

static ::google::protobuf::Message const * const file_default_instances[] = {
  reinterpret_cast<const ::google::protobuf::Message*>(&::globalmsg::_msg_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::globalmsg::_laserMsg_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::globalmsg::_plcMsg_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::globalmsg::_resultInfo_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::globalmsg::_algMsg_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::globalmsg::_SysMsg_default_instance_),
};

void protobuf_AssignDescriptors() {
  AddDescriptors();
  ::google::protobuf::MessageFactory* factory = NULL;
  AssignDescriptors(
      "globalmsg.proto", schemas, file_default_instances, TableStruct::offsets, factory,
      file_level_metadata, file_level_enum_descriptors, NULL);
}

void protobuf_AssignDescriptorsOnce() {
  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
  ::google::protobuf::GoogleOnceInit(&once, &protobuf_AssignDescriptors);
}

void protobuf_RegisterTypes(const ::std::string&) GOOGLE_PROTOBUF_ATTRIBUTE_COLD;
void protobuf_RegisterTypes(const ::std::string&) {
  protobuf_AssignDescriptorsOnce();
  ::google::protobuf::internal::RegisterAllTypes(file_level_metadata, 6);
}

void AddDescriptorsImpl() {
  InitDefaults();
  static const char descriptor[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
      "\n\017globalmsg.proto\022\tglobalmsg\"\274\001\n\003msg\022!\n\010"
      "msg_type\030\001 \002(\0162\017.globalmsg.type\022&\n\tlaser"
      "_msg\030\002 \001(\0132\023.globalmsg.laserMsg\022\"\n\007plc_m"
      "sg\030\003 \001(\0132\021.globalmsg.plcMsg\022\"\n\007alg_msg\030\004"
      " \001(\0132\021.globalmsg.algMsg\022\"\n\007sys_msg\030\005 \001(\013"
      "2\021.globalmsg.SysMsg\"s\n\010laserMsg\022,\n\014laser"
      "_status\030\001 \001(\0162\026.globalmsg.laserStatus\022\030\n"
      "\020queue_data_count\030\002 \001(\005\022\023\n\013cloud_count\030\003"
      " \001(\005\022\n\n\002id\030\004 \002(\005\"F\n\006plcMsg\022(\n\nplc_status"
      "\030\001 \001(\0162\024.globalmsg.plcStatus\022\022\n\nplc_valu"
      "es\030\002 \003(\005\"\320\001\n\nresultInfo\022\016\n\004time\030\001 \002(\t:\000\022"
      "\023\n\013correctness\030\002 \002(\010\022\025\n\rpark_space_id\030\003 "
      "\001(\005\022\021\n\tlaser_ids\030\004 \001(\005\022\t\n\001x\030\005 \001(\001\022\t\n\001y\030\006"
      " \001(\001\022\t\n\001c\030\007 \001(\001\022\022\n\nwheel_base\030\010 \001(\001\022\016\n\006l"
      "ength\030\t \001(\001\022\r\n\005width\030\n \001(\001\022\016\n\006height\030\013 \001"
      "(\001\022\017\n\005error\030\014 \001(\t:\000\"^\n\006algMsg\022%\n\006result\030"
      "\001 \003(\0132\025.globalmsg.resultInfo\022\031\n\021thread_q"
      "ueue_size\030\002 \001(\005\022\022\n\010log_path\030\003 \001(\t:\000\"E\n\006S"
      "ysMsg\022\r\n\003log\030\001 \002(\t:\000\022,\n\005level\030\002 \001(\0162\023.gl"
      "obalmsg.logLevel:\010eSysInfo*0\n\004type\022\010\n\004eP"
      "LC\020\000\022\n\n\006eLaser\020\001\022\010\n\004eAlg\020\002\022\010\n\004eLog\020\003*]\n\013"
      "laserStatus\022\023\n\017eLaserConnected\020\000\022\026\n\022eLas"
      "erDisconnected\020\001\022\016\n\neLaserBusy\020\002\022\021\n\reLas"
      "erUnknown\020\003*V\n\tplcStatus\022\021\n\rePLCConnecte"
      "d\020\000\022\024\n\020ePLCDisconnected\020\001\022\017\n\013ePLCRefused"
      "\020\002\022\017\n\013ePLCUnknown\020\003*E\n\010logLevel\022\014\n\010eSysI"
      "nfo\020\000\022\013\n\007eSysLog\020\001\022\017\n\013eSysWarning\020\002\022\r\n\te"
      "SysError\020\003"
  };
  ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
      descriptor, 1090);
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
    "globalmsg.proto", &protobuf_RegisterTypes);
}

void AddDescriptors() {
  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
  ::google::protobuf::GoogleOnceInit(&once, &AddDescriptorsImpl);
}
// Force AddDescriptors() to be called at dynamic initialization time.
struct StaticDescriptorInitializer {
  StaticDescriptorInitializer() {
    AddDescriptors();
  }
} static_descriptor_initializer;
}  // namespace protobuf_globalmsg_2eproto
namespace globalmsg {
const ::google::protobuf::EnumDescriptor* type_descriptor() {
  protobuf_globalmsg_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_globalmsg_2eproto::file_level_enum_descriptors[0];
}
bool type_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
      return true;
    default:
      return false;
  }
}

const ::google::protobuf::EnumDescriptor* laserStatus_descriptor() {
  protobuf_globalmsg_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_globalmsg_2eproto::file_level_enum_descriptors[1];
}
bool laserStatus_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
      return true;
    default:
      return false;
  }
}

const ::google::protobuf::EnumDescriptor* plcStatus_descriptor() {
  protobuf_globalmsg_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_globalmsg_2eproto::file_level_enum_descriptors[2];
}
bool plcStatus_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
      return true;
    default:
      return false;
  }
}

const ::google::protobuf::EnumDescriptor* logLevel_descriptor() {
  protobuf_globalmsg_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_globalmsg_2eproto::file_level_enum_descriptors[3];
}
bool logLevel_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
      return true;
    default:
      return false;
  }
}


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

void msg::InitAsDefaultInstance() {
  ::globalmsg::_msg_default_instance_._instance.get_mutable()->laser_msg_ = const_cast< ::globalmsg::laserMsg*>(
      ::globalmsg::laserMsg::internal_default_instance());
  ::globalmsg::_msg_default_instance_._instance.get_mutable()->plc_msg_ = const_cast< ::globalmsg::plcMsg*>(
      ::globalmsg::plcMsg::internal_default_instance());
  ::globalmsg::_msg_default_instance_._instance.get_mutable()->alg_msg_ = const_cast< ::globalmsg::algMsg*>(
      ::globalmsg::algMsg::internal_default_instance());
  ::globalmsg::_msg_default_instance_._instance.get_mutable()->sys_msg_ = const_cast< ::globalmsg::SysMsg*>(
      ::globalmsg::SysMsg::internal_default_instance());
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int msg::kMsgTypeFieldNumber;
const int msg::kLaserMsgFieldNumber;
const int msg::kPlcMsgFieldNumber;
const int msg::kAlgMsgFieldNumber;
const int msg::kSysMsgFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

msg::msg()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    ::protobuf_globalmsg_2eproto::InitDefaultsmsg();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:globalmsg.msg)
}
msg::msg(const msg& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.has_laser_msg()) {
    laser_msg_ = new ::globalmsg::laserMsg(*from.laser_msg_);
  } else {
    laser_msg_ = NULL;
  }
  if (from.has_plc_msg()) {
    plc_msg_ = new ::globalmsg::plcMsg(*from.plc_msg_);
  } else {
    plc_msg_ = NULL;
  }
  if (from.has_alg_msg()) {
    alg_msg_ = new ::globalmsg::algMsg(*from.alg_msg_);
  } else {
    alg_msg_ = NULL;
  }
  if (from.has_sys_msg()) {
    sys_msg_ = new ::globalmsg::SysMsg(*from.sys_msg_);
  } else {
    sys_msg_ = NULL;
  }
  msg_type_ = from.msg_type_;
  // @@protoc_insertion_point(copy_constructor:globalmsg.msg)
}

void msg::SharedCtor() {
  _cached_size_ = 0;
  ::memset(&laser_msg_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&msg_type_) -
      reinterpret_cast<char*>(&laser_msg_)) + sizeof(msg_type_));
}

msg::~msg() {
  // @@protoc_insertion_point(destructor:globalmsg.msg)
  SharedDtor();
}

void msg::SharedDtor() {
  if (this != internal_default_instance()) delete laser_msg_;
  if (this != internal_default_instance()) delete plc_msg_;
  if (this != internal_default_instance()) delete alg_msg_;
  if (this != internal_default_instance()) delete sys_msg_;
}

void msg::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* msg::descriptor() {
  ::protobuf_globalmsg_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_globalmsg_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const msg& msg::default_instance() {
  ::protobuf_globalmsg_2eproto::InitDefaultsmsg();
  return *internal_default_instance();
}

msg* msg::New(::google::protobuf::Arena* arena) const {
  msg* n = new msg;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void msg::Clear() {
// @@protoc_insertion_point(message_clear_start:globalmsg.msg)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  if (cached_has_bits & 15u) {
    if (cached_has_bits & 0x00000001u) {
      GOOGLE_DCHECK(laser_msg_ != NULL);
      laser_msg_->Clear();
    }
    if (cached_has_bits & 0x00000002u) {
      GOOGLE_DCHECK(plc_msg_ != NULL);
      plc_msg_->Clear();
    }
    if (cached_has_bits & 0x00000004u) {
      GOOGLE_DCHECK(alg_msg_ != NULL);
      alg_msg_->Clear();
    }
    if (cached_has_bits & 0x00000008u) {
      GOOGLE_DCHECK(sys_msg_ != NULL);
      sys_msg_->Clear();
    }
  }
  msg_type_ = 0;
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool msg::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:globalmsg.msg)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // required .globalmsg.type msg_type = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          if (::globalmsg::type_IsValid(value)) {
            set_msg_type(static_cast< ::globalmsg::type >(value));
          } else {
            mutable_unknown_fields()->AddVarint(
                1, static_cast< ::google::protobuf::uint64>(value));
          }
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional .globalmsg.laserMsg laser_msg = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_laser_msg()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional .globalmsg.plcMsg plc_msg = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(26u /* 26 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_plc_msg()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional .globalmsg.algMsg alg_msg = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(34u /* 34 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_alg_msg()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional .globalmsg.SysMsg sys_msg = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(42u /* 42 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_sys_msg()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:globalmsg.msg)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:globalmsg.msg)
  return false;
#undef DO_
}

void msg::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:globalmsg.msg)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // required .globalmsg.type msg_type = 1;
  if (cached_has_bits & 0x00000010u) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      1, this->msg_type(), output);
  }

  // optional .globalmsg.laserMsg laser_msg = 2;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      2, *this->laser_msg_, output);
  }

  // optional .globalmsg.plcMsg plc_msg = 3;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      3, *this->plc_msg_, output);
  }

  // optional .globalmsg.algMsg alg_msg = 4;
  if (cached_has_bits & 0x00000004u) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      4, *this->alg_msg_, output);
  }

  // optional .globalmsg.SysMsg sys_msg = 5;
  if (cached_has_bits & 0x00000008u) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      5, *this->sys_msg_, output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:globalmsg.msg)
}

::google::protobuf::uint8* msg::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:globalmsg.msg)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // required .globalmsg.type msg_type = 1;
  if (cached_has_bits & 0x00000010u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
      1, this->msg_type(), target);
  }

  // optional .globalmsg.laserMsg laser_msg = 2;
  if (cached_has_bits & 0x00000001u) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        2, *this->laser_msg_, deterministic, target);
  }

  // optional .globalmsg.plcMsg plc_msg = 3;
  if (cached_has_bits & 0x00000002u) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        3, *this->plc_msg_, deterministic, target);
  }

  // optional .globalmsg.algMsg alg_msg = 4;
  if (cached_has_bits & 0x00000004u) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        4, *this->alg_msg_, deterministic, target);
  }

  // optional .globalmsg.SysMsg sys_msg = 5;
  if (cached_has_bits & 0x00000008u) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        5, *this->sys_msg_, deterministic, target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:globalmsg.msg)
  return target;
}

size_t msg::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:globalmsg.msg)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  // required .globalmsg.type msg_type = 1;
  if (has_msg_type()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::EnumSize(this->msg_type());
  }
  if (_has_bits_[0 / 32] & 15u) {
    // optional .globalmsg.laserMsg laser_msg = 2;
    if (has_laser_msg()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *this->laser_msg_);
    }

    // optional .globalmsg.plcMsg plc_msg = 3;
    if (has_plc_msg()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *this->plc_msg_);
    }

    // optional .globalmsg.algMsg alg_msg = 4;
    if (has_alg_msg()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *this->alg_msg_);
    }

    // optional .globalmsg.SysMsg sys_msg = 5;
    if (has_sys_msg()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *this->sys_msg_);
    }

  }
  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void msg::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:globalmsg.msg)
  GOOGLE_DCHECK_NE(&from, this);
  const msg* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const msg>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:globalmsg.msg)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:globalmsg.msg)
    MergeFrom(*source);
  }
}

void msg::MergeFrom(const msg& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:globalmsg.msg)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 31u) {
    if (cached_has_bits & 0x00000001u) {
      mutable_laser_msg()->::globalmsg::laserMsg::MergeFrom(from.laser_msg());
    }
    if (cached_has_bits & 0x00000002u) {
      mutable_plc_msg()->::globalmsg::plcMsg::MergeFrom(from.plc_msg());
    }
    if (cached_has_bits & 0x00000004u) {
      mutable_alg_msg()->::globalmsg::algMsg::MergeFrom(from.alg_msg());
    }
    if (cached_has_bits & 0x00000008u) {
      mutable_sys_msg()->::globalmsg::SysMsg::MergeFrom(from.sys_msg());
    }
    if (cached_has_bits & 0x00000010u) {
      msg_type_ = from.msg_type_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
}

void msg::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:globalmsg.msg)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void msg::CopyFrom(const msg& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:globalmsg.msg)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool msg::IsInitialized() const {
  if ((_has_bits_[0] & 0x00000010) != 0x00000010) return false;
  if (has_laser_msg()) {
    if (!this->laser_msg_->IsInitialized()) return false;
  }
  if (has_alg_msg()) {
    if (!this->alg_msg_->IsInitialized()) return false;
  }
  if (has_sys_msg()) {
    if (!this->sys_msg_->IsInitialized()) return false;
  }
  return true;
}

void msg::Swap(msg* other) {
  if (other == this) return;
  InternalSwap(other);
}
void msg::InternalSwap(msg* other) {
  using std::swap;
  swap(laser_msg_, other->laser_msg_);
  swap(plc_msg_, other->plc_msg_);
  swap(alg_msg_, other->alg_msg_);
  swap(sys_msg_, other->sys_msg_);
  swap(msg_type_, other->msg_type_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata msg::GetMetadata() const {
  protobuf_globalmsg_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_globalmsg_2eproto::file_level_metadata[kIndexInFileMessages];
}


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

void laserMsg::InitAsDefaultInstance() {
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int laserMsg::kLaserStatusFieldNumber;
const int laserMsg::kQueueDataCountFieldNumber;
const int laserMsg::kCloudCountFieldNumber;
const int laserMsg::kIdFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

laserMsg::laserMsg()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    ::protobuf_globalmsg_2eproto::InitDefaultslaserMsg();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:globalmsg.laserMsg)
}
laserMsg::laserMsg(const laserMsg& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::memcpy(&laser_status_, &from.laser_status_,
    static_cast<size_t>(reinterpret_cast<char*>(&id_) -
    reinterpret_cast<char*>(&laser_status_)) + sizeof(id_));
  // @@protoc_insertion_point(copy_constructor:globalmsg.laserMsg)
}

void laserMsg::SharedCtor() {
  _cached_size_ = 0;
  ::memset(&laser_status_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&id_) -
      reinterpret_cast<char*>(&laser_status_)) + sizeof(id_));
}

laserMsg::~laserMsg() {
  // @@protoc_insertion_point(destructor:globalmsg.laserMsg)
  SharedDtor();
}

void laserMsg::SharedDtor() {
}

void laserMsg::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* laserMsg::descriptor() {
  ::protobuf_globalmsg_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_globalmsg_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const laserMsg& laserMsg::default_instance() {
  ::protobuf_globalmsg_2eproto::InitDefaultslaserMsg();
  return *internal_default_instance();
}

laserMsg* laserMsg::New(::google::protobuf::Arena* arena) const {
  laserMsg* n = new laserMsg;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void laserMsg::Clear() {
// @@protoc_insertion_point(message_clear_start:globalmsg.laserMsg)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  if (cached_has_bits & 15u) {
    ::memset(&laser_status_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&id_) -
        reinterpret_cast<char*>(&laser_status_)) + sizeof(id_));
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool laserMsg::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:globalmsg.laserMsg)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional .globalmsg.laserStatus laser_status = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          if (::globalmsg::laserStatus_IsValid(value)) {
            set_laser_status(static_cast< ::globalmsg::laserStatus >(value));
          } else {
            mutable_unknown_fields()->AddVarint(
                1, static_cast< ::google::protobuf::uint64>(value));
          }
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 queue_data_count = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
          set_has_queue_data_count();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &queue_data_count_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 cloud_count = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {
          set_has_cloud_count();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &cloud_count_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // required int32 id = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(32u /* 32 & 0xFF */)) {
          set_has_id();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &id_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:globalmsg.laserMsg)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:globalmsg.laserMsg)
  return false;
#undef DO_
}

void laserMsg::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:globalmsg.laserMsg)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional .globalmsg.laserStatus laser_status = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      1, this->laser_status(), output);
  }

  // optional int32 queue_data_count = 2;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(2, this->queue_data_count(), output);
  }

  // optional int32 cloud_count = 3;
  if (cached_has_bits & 0x00000004u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(3, this->cloud_count(), output);
  }

  // required int32 id = 4;
  if (cached_has_bits & 0x00000008u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(4, this->id(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:globalmsg.laserMsg)
}

::google::protobuf::uint8* laserMsg::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:globalmsg.laserMsg)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional .globalmsg.laserStatus laser_status = 1;
  if (cached_has_bits & 0x00000001u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
      1, this->laser_status(), target);
  }

  // optional int32 queue_data_count = 2;
  if (cached_has_bits & 0x00000002u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(2, this->queue_data_count(), target);
  }

  // optional int32 cloud_count = 3;
  if (cached_has_bits & 0x00000004u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(3, this->cloud_count(), target);
  }

  // required int32 id = 4;
  if (cached_has_bits & 0x00000008u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(4, this->id(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:globalmsg.laserMsg)
  return target;
}

size_t laserMsg::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:globalmsg.laserMsg)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  // required int32 id = 4;
  if (has_id()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->id());
  }
  if (_has_bits_[0 / 32] & 7u) {
    // optional .globalmsg.laserStatus laser_status = 1;
    if (has_laser_status()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::EnumSize(this->laser_status());
    }

    // optional int32 queue_data_count = 2;
    if (has_queue_data_count()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->queue_data_count());
    }

    // optional int32 cloud_count = 3;
    if (has_cloud_count()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->cloud_count());
    }

  }
  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void laserMsg::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:globalmsg.laserMsg)
  GOOGLE_DCHECK_NE(&from, this);
  const laserMsg* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const laserMsg>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:globalmsg.laserMsg)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:globalmsg.laserMsg)
    MergeFrom(*source);
  }
}

void laserMsg::MergeFrom(const laserMsg& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:globalmsg.laserMsg)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 15u) {
    if (cached_has_bits & 0x00000001u) {
      laser_status_ = from.laser_status_;
    }
    if (cached_has_bits & 0x00000002u) {
      queue_data_count_ = from.queue_data_count_;
    }
    if (cached_has_bits & 0x00000004u) {
      cloud_count_ = from.cloud_count_;
    }
    if (cached_has_bits & 0x00000008u) {
      id_ = from.id_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
}

void laserMsg::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:globalmsg.laserMsg)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void laserMsg::CopyFrom(const laserMsg& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:globalmsg.laserMsg)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool laserMsg::IsInitialized() const {
  if ((_has_bits_[0] & 0x00000008) != 0x00000008) return false;
  return true;
}

void laserMsg::Swap(laserMsg* other) {
  if (other == this) return;
  InternalSwap(other);
}
void laserMsg::InternalSwap(laserMsg* other) {
  using std::swap;
  swap(laser_status_, other->laser_status_);
  swap(queue_data_count_, other->queue_data_count_);
  swap(cloud_count_, other->cloud_count_);
  swap(id_, other->id_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata laserMsg::GetMetadata() const {
  protobuf_globalmsg_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_globalmsg_2eproto::file_level_metadata[kIndexInFileMessages];
}


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

void plcMsg::InitAsDefaultInstance() {
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int plcMsg::kPlcStatusFieldNumber;
const int plcMsg::kPlcValuesFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

plcMsg::plcMsg()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    ::protobuf_globalmsg_2eproto::InitDefaultsplcMsg();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:globalmsg.plcMsg)
}
plcMsg::plcMsg(const plcMsg& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0),
      plc_values_(from.plc_values_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  plc_status_ = from.plc_status_;
  // @@protoc_insertion_point(copy_constructor:globalmsg.plcMsg)
}

void plcMsg::SharedCtor() {
  _cached_size_ = 0;
  plc_status_ = 0;
}

plcMsg::~plcMsg() {
  // @@protoc_insertion_point(destructor:globalmsg.plcMsg)
  SharedDtor();
}

void plcMsg::SharedDtor() {
}

void plcMsg::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* plcMsg::descriptor() {
  ::protobuf_globalmsg_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_globalmsg_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const plcMsg& plcMsg::default_instance() {
  ::protobuf_globalmsg_2eproto::InitDefaultsplcMsg();
  return *internal_default_instance();
}

plcMsg* plcMsg::New(::google::protobuf::Arena* arena) const {
  plcMsg* n = new plcMsg;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void plcMsg::Clear() {
// @@protoc_insertion_point(message_clear_start:globalmsg.plcMsg)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  plc_values_.Clear();
  plc_status_ = 0;
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool plcMsg::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:globalmsg.plcMsg)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional .globalmsg.plcStatus plc_status = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          if (::globalmsg::plcStatus_IsValid(value)) {
            set_plc_status(static_cast< ::globalmsg::plcStatus >(value));
          } else {
            mutable_unknown_fields()->AddVarint(
                1, static_cast< ::google::protobuf::uint64>(value));
          }
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated int32 plc_values = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 1, 16u, input, this->mutable_plc_values())));
        } else if (
            static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitiveNoInline<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, this->mutable_plc_values())));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:globalmsg.plcMsg)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:globalmsg.plcMsg)
  return false;
#undef DO_
}

void plcMsg::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:globalmsg.plcMsg)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional .globalmsg.plcStatus plc_status = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      1, this->plc_status(), output);
  }

  // repeated int32 plc_values = 2;
  for (int i = 0, n = this->plc_values_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(
      2, this->plc_values(i), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:globalmsg.plcMsg)
}

::google::protobuf::uint8* plcMsg::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:globalmsg.plcMsg)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional .globalmsg.plcStatus plc_status = 1;
  if (cached_has_bits & 0x00000001u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
      1, this->plc_status(), target);
  }

  // repeated int32 plc_values = 2;
  target = ::google::protobuf::internal::WireFormatLite::
    WriteInt32ToArray(2, this->plc_values_, target);

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:globalmsg.plcMsg)
  return target;
}

size_t plcMsg::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:globalmsg.plcMsg)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  // repeated int32 plc_values = 2;
  {
    size_t data_size = ::google::protobuf::internal::WireFormatLite::
      Int32Size(this->plc_values_);
    total_size += 1 *
                  ::google::protobuf::internal::FromIntSize(this->plc_values_size());
    total_size += data_size;
  }

  // optional .globalmsg.plcStatus plc_status = 1;
  if (has_plc_status()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::EnumSize(this->plc_status());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void plcMsg::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:globalmsg.plcMsg)
  GOOGLE_DCHECK_NE(&from, this);
  const plcMsg* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const plcMsg>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:globalmsg.plcMsg)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:globalmsg.plcMsg)
    MergeFrom(*source);
  }
}

void plcMsg::MergeFrom(const plcMsg& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:globalmsg.plcMsg)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  plc_values_.MergeFrom(from.plc_values_);
  if (from.has_plc_status()) {
    set_plc_status(from.plc_status());
  }
}

void plcMsg::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:globalmsg.plcMsg)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void plcMsg::CopyFrom(const plcMsg& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:globalmsg.plcMsg)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool plcMsg::IsInitialized() const {
  return true;
}

void plcMsg::Swap(plcMsg* other) {
  if (other == this) return;
  InternalSwap(other);
}
void plcMsg::InternalSwap(plcMsg* other) {
  using std::swap;
  plc_values_.InternalSwap(&other->plc_values_);
  swap(plc_status_, other->plc_status_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata plcMsg::GetMetadata() const {
  protobuf_globalmsg_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_globalmsg_2eproto::file_level_metadata[kIndexInFileMessages];
}


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

void resultInfo::InitAsDefaultInstance() {
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int resultInfo::kTimeFieldNumber;
const int resultInfo::kCorrectnessFieldNumber;
const int resultInfo::kParkSpaceIdFieldNumber;
const int resultInfo::kLaserIdsFieldNumber;
const int resultInfo::kXFieldNumber;
const int resultInfo::kYFieldNumber;
const int resultInfo::kCFieldNumber;
const int resultInfo::kWheelBaseFieldNumber;
const int resultInfo::kLengthFieldNumber;
const int resultInfo::kWidthFieldNumber;
const int resultInfo::kHeightFieldNumber;
const int resultInfo::kErrorFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

resultInfo::resultInfo()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    ::protobuf_globalmsg_2eproto::InitDefaultsresultInfo();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:globalmsg.resultInfo)
}
resultInfo::resultInfo(const resultInfo& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  time_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_time()) {
    time_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.time_);
  }
  error_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_error()) {
    error_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.error_);
  }
  ::memcpy(&correctness_, &from.correctness_,
    static_cast<size_t>(reinterpret_cast<char*>(&laser_ids_) -
    reinterpret_cast<char*>(&correctness_)) + sizeof(laser_ids_));
  // @@protoc_insertion_point(copy_constructor:globalmsg.resultInfo)
}

void resultInfo::SharedCtor() {
  _cached_size_ = 0;
  time_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  error_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(&correctness_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&laser_ids_) -
      reinterpret_cast<char*>(&correctness_)) + sizeof(laser_ids_));
}

resultInfo::~resultInfo() {
  // @@protoc_insertion_point(destructor:globalmsg.resultInfo)
  SharedDtor();
}

void resultInfo::SharedDtor() {
  time_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  error_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void resultInfo::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* resultInfo::descriptor() {
  ::protobuf_globalmsg_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_globalmsg_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const resultInfo& resultInfo::default_instance() {
  ::protobuf_globalmsg_2eproto::InitDefaultsresultInfo();
  return *internal_default_instance();
}

resultInfo* resultInfo::New(::google::protobuf::Arena* arena) const {
  resultInfo* n = new resultInfo;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void resultInfo::Clear() {
// @@protoc_insertion_point(message_clear_start:globalmsg.resultInfo)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  if (cached_has_bits & 3u) {
    if (cached_has_bits & 0x00000001u) {
      GOOGLE_DCHECK(!time_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
      (*time_.UnsafeRawStringPointer())->clear();
    }
    if (cached_has_bits & 0x00000002u) {
      GOOGLE_DCHECK(!error_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
      (*error_.UnsafeRawStringPointer())->clear();
    }
  }
  if (cached_has_bits & 252u) {
    ::memset(&correctness_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&wheel_base_) -
        reinterpret_cast<char*>(&correctness_)) + sizeof(wheel_base_));
  }
  if (cached_has_bits & 3840u) {
    ::memset(&length_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&laser_ids_) -
        reinterpret_cast<char*>(&length_)) + sizeof(laser_ids_));
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool resultInfo::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:globalmsg.resultInfo)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // required string time = 1 [default = ""];
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_time()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->time().data(), static_cast<int>(this->time().length()),
            ::google::protobuf::internal::WireFormat::PARSE,
            "globalmsg.resultInfo.time");
        } else {
          goto handle_unusual;
        }
        break;
      }

      // required bool correctness = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
          set_has_correctness();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &correctness_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 park_space_id = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {
          set_has_park_space_id();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &park_space_id_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 laser_ids = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(32u /* 32 & 0xFF */)) {
          set_has_laser_ids();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &laser_ids_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional double x = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(41u /* 41 & 0xFF */)) {
          set_has_x();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
                 input, &x_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional double y = 6;
      case 6: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(49u /* 49 & 0xFF */)) {
          set_has_y();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
                 input, &y_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional double c = 7;
      case 7: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(57u /* 57 & 0xFF */)) {
          set_has_c();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
                 input, &c_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional double wheel_base = 8;
      case 8: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(65u /* 65 & 0xFF */)) {
          set_has_wheel_base();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
                 input, &wheel_base_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional double length = 9;
      case 9: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(73u /* 73 & 0xFF */)) {
          set_has_length();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
                 input, &length_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional double width = 10;
      case 10: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(81u /* 81 & 0xFF */)) {
          set_has_width();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
                 input, &width_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional double height = 11;
      case 11: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(89u /* 89 & 0xFF */)) {
          set_has_height();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
                 input, &height_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional string error = 12 [default = ""];
      case 12: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(98u /* 98 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_error()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->error().data(), static_cast<int>(this->error().length()),
            ::google::protobuf::internal::WireFormat::PARSE,
            "globalmsg.resultInfo.error");
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:globalmsg.resultInfo)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:globalmsg.resultInfo)
  return false;
#undef DO_
}

void resultInfo::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:globalmsg.resultInfo)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // required string time = 1 [default = ""];
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->time().data(), static_cast<int>(this->time().length()),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "globalmsg.resultInfo.time");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->time(), output);
  }

  // required bool correctness = 2;
  if (cached_has_bits & 0x00000004u) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(2, this->correctness(), output);
  }

  // optional int32 park_space_id = 3;
  if (cached_has_bits & 0x00000008u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(3, this->park_space_id(), output);
  }

  // optional int32 laser_ids = 4;
  if (cached_has_bits & 0x00000800u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(4, this->laser_ids(), output);
  }

  // optional double x = 5;
  if (cached_has_bits & 0x00000010u) {
    ::google::protobuf::internal::WireFormatLite::WriteDouble(5, this->x(), output);
  }

  // optional double y = 6;
  if (cached_has_bits & 0x00000020u) {
    ::google::protobuf::internal::WireFormatLite::WriteDouble(6, this->y(), output);
  }

  // optional double c = 7;
  if (cached_has_bits & 0x00000040u) {
    ::google::protobuf::internal::WireFormatLite::WriteDouble(7, this->c(), output);
  }

  // optional double wheel_base = 8;
  if (cached_has_bits & 0x00000080u) {
    ::google::protobuf::internal::WireFormatLite::WriteDouble(8, this->wheel_base(), output);
  }

  // optional double length = 9;
  if (cached_has_bits & 0x00000100u) {
    ::google::protobuf::internal::WireFormatLite::WriteDouble(9, this->length(), output);
  }

  // optional double width = 10;
  if (cached_has_bits & 0x00000200u) {
    ::google::protobuf::internal::WireFormatLite::WriteDouble(10, this->width(), output);
  }

  // optional double height = 11;
  if (cached_has_bits & 0x00000400u) {
    ::google::protobuf::internal::WireFormatLite::WriteDouble(11, this->height(), output);
  }

  // optional string error = 12 [default = ""];
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->error().data(), static_cast<int>(this->error().length()),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "globalmsg.resultInfo.error");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      12, this->error(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:globalmsg.resultInfo)
}

::google::protobuf::uint8* resultInfo::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:globalmsg.resultInfo)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // required string time = 1 [default = ""];
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->time().data(), static_cast<int>(this->time().length()),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "globalmsg.resultInfo.time");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->time(), target);
  }

  // required bool correctness = 2;
  if (cached_has_bits & 0x00000004u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(2, this->correctness(), target);
  }

  // optional int32 park_space_id = 3;
  if (cached_has_bits & 0x00000008u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(3, this->park_space_id(), target);
  }

  // optional int32 laser_ids = 4;
  if (cached_has_bits & 0x00000800u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(4, this->laser_ids(), target);
  }

  // optional double x = 5;
  if (cached_has_bits & 0x00000010u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(5, this->x(), target);
  }

  // optional double y = 6;
  if (cached_has_bits & 0x00000020u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(6, this->y(), target);
  }

  // optional double c = 7;
  if (cached_has_bits & 0x00000040u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(7, this->c(), target);
  }

  // optional double wheel_base = 8;
  if (cached_has_bits & 0x00000080u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(8, this->wheel_base(), target);
  }

  // optional double length = 9;
  if (cached_has_bits & 0x00000100u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(9, this->length(), target);
  }

  // optional double width = 10;
  if (cached_has_bits & 0x00000200u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(10, this->width(), target);
  }

  // optional double height = 11;
  if (cached_has_bits & 0x00000400u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(11, this->height(), target);
  }

  // optional string error = 12 [default = ""];
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->error().data(), static_cast<int>(this->error().length()),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "globalmsg.resultInfo.error");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        12, this->error(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:globalmsg.resultInfo)
  return target;
}

size_t resultInfo::RequiredFieldsByteSizeFallback() const {
// @@protoc_insertion_point(required_fields_byte_size_fallback_start:globalmsg.resultInfo)
  size_t total_size = 0;

  if (has_time()) {
    // required string time = 1 [default = ""];
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->time());
  }

  if (has_correctness()) {
    // required bool correctness = 2;
    total_size += 1 + 1;
  }

  return total_size;
}
size_t resultInfo::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:globalmsg.resultInfo)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  if (((_has_bits_[0] & 0x00000005) ^ 0x00000005) == 0) {  // All required fields are present.
    // required string time = 1 [default = ""];
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->time());

    // required bool correctness = 2;
    total_size += 1 + 1;

  } else {
    total_size += RequiredFieldsByteSizeFallback();
  }
  // optional string error = 12 [default = ""];
  if (has_error()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->error());
  }

  if (_has_bits_[0 / 32] & 248u) {
    // optional int32 park_space_id = 3;
    if (has_park_space_id()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->park_space_id());
    }

    // optional double x = 5;
    if (has_x()) {
      total_size += 1 + 8;
    }

    // optional double y = 6;
    if (has_y()) {
      total_size += 1 + 8;
    }

    // optional double c = 7;
    if (has_c()) {
      total_size += 1 + 8;
    }

    // optional double wheel_base = 8;
    if (has_wheel_base()) {
      total_size += 1 + 8;
    }

  }
  if (_has_bits_[8 / 32] & 3840u) {
    // optional double length = 9;
    if (has_length()) {
      total_size += 1 + 8;
    }

    // optional double width = 10;
    if (has_width()) {
      total_size += 1 + 8;
    }

    // optional double height = 11;
    if (has_height()) {
      total_size += 1 + 8;
    }

    // optional int32 laser_ids = 4;
    if (has_laser_ids()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->laser_ids());
    }

  }
  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void resultInfo::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:globalmsg.resultInfo)
  GOOGLE_DCHECK_NE(&from, this);
  const resultInfo* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const resultInfo>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:globalmsg.resultInfo)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:globalmsg.resultInfo)
    MergeFrom(*source);
  }
}

void resultInfo::MergeFrom(const resultInfo& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:globalmsg.resultInfo)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 255u) {
    if (cached_has_bits & 0x00000001u) {
      set_has_time();
      time_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.time_);
    }
    if (cached_has_bits & 0x00000002u) {
      set_has_error();
      error_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.error_);
    }
    if (cached_has_bits & 0x00000004u) {
      correctness_ = from.correctness_;
    }
    if (cached_has_bits & 0x00000008u) {
      park_space_id_ = from.park_space_id_;
    }
    if (cached_has_bits & 0x00000010u) {
      x_ = from.x_;
    }
    if (cached_has_bits & 0x00000020u) {
      y_ = from.y_;
    }
    if (cached_has_bits & 0x00000040u) {
      c_ = from.c_;
    }
    if (cached_has_bits & 0x00000080u) {
      wheel_base_ = from.wheel_base_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
  if (cached_has_bits & 3840u) {
    if (cached_has_bits & 0x00000100u) {
      length_ = from.length_;
    }
    if (cached_has_bits & 0x00000200u) {
      width_ = from.width_;
    }
    if (cached_has_bits & 0x00000400u) {
      height_ = from.height_;
    }
    if (cached_has_bits & 0x00000800u) {
      laser_ids_ = from.laser_ids_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
}

void resultInfo::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:globalmsg.resultInfo)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void resultInfo::CopyFrom(const resultInfo& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:globalmsg.resultInfo)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool resultInfo::IsInitialized() const {
  if ((_has_bits_[0] & 0x00000005) != 0x00000005) return false;
  return true;
}

void resultInfo::Swap(resultInfo* other) {
  if (other == this) return;
  InternalSwap(other);
}
void resultInfo::InternalSwap(resultInfo* other) {
  using std::swap;
  time_.Swap(&other->time_);
  error_.Swap(&other->error_);
  swap(correctness_, other->correctness_);
  swap(park_space_id_, other->park_space_id_);
  swap(x_, other->x_);
  swap(y_, other->y_);
  swap(c_, other->c_);
  swap(wheel_base_, other->wheel_base_);
  swap(length_, other->length_);
  swap(width_, other->width_);
  swap(height_, other->height_);
  swap(laser_ids_, other->laser_ids_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata resultInfo::GetMetadata() const {
  protobuf_globalmsg_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_globalmsg_2eproto::file_level_metadata[kIndexInFileMessages];
}


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

void algMsg::InitAsDefaultInstance() {
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int algMsg::kResultFieldNumber;
const int algMsg::kThreadQueueSizeFieldNumber;
const int algMsg::kLogPathFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

algMsg::algMsg()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    ::protobuf_globalmsg_2eproto::InitDefaultsalgMsg();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:globalmsg.algMsg)
}
algMsg::algMsg(const algMsg& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0),
      result_(from.result_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  log_path_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_log_path()) {
    log_path_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.log_path_);
  }
  thread_queue_size_ = from.thread_queue_size_;
  // @@protoc_insertion_point(copy_constructor:globalmsg.algMsg)
}

void algMsg::SharedCtor() {
  _cached_size_ = 0;
  log_path_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  thread_queue_size_ = 0;
}

algMsg::~algMsg() {
  // @@protoc_insertion_point(destructor:globalmsg.algMsg)
  SharedDtor();
}

void algMsg::SharedDtor() {
  log_path_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void algMsg::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* algMsg::descriptor() {
  ::protobuf_globalmsg_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_globalmsg_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const algMsg& algMsg::default_instance() {
  ::protobuf_globalmsg_2eproto::InitDefaultsalgMsg();
  return *internal_default_instance();
}

algMsg* algMsg::New(::google::protobuf::Arena* arena) const {
  algMsg* n = new algMsg;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void algMsg::Clear() {
// @@protoc_insertion_point(message_clear_start:globalmsg.algMsg)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  result_.Clear();
  cached_has_bits = _has_bits_[0];
  if (cached_has_bits & 0x00000001u) {
    GOOGLE_DCHECK(!log_path_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
    (*log_path_.UnsafeRawStringPointer())->clear();
  }
  thread_queue_size_ = 0;
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool algMsg::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:globalmsg.algMsg)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // repeated .globalmsg.resultInfo result = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(input, add_result()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 thread_queue_size = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
          set_has_thread_queue_size();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &thread_queue_size_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional string log_path = 3 [default = ""];
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(26u /* 26 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_log_path()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->log_path().data(), static_cast<int>(this->log_path().length()),
            ::google::protobuf::internal::WireFormat::PARSE,
            "globalmsg.algMsg.log_path");
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:globalmsg.algMsg)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:globalmsg.algMsg)
  return false;
#undef DO_
}

void algMsg::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:globalmsg.algMsg)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .globalmsg.resultInfo result = 1;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->result_size()); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      1, this->result(static_cast<int>(i)), output);
  }

  cached_has_bits = _has_bits_[0];
  // optional int32 thread_queue_size = 2;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(2, this->thread_queue_size(), output);
  }

  // optional string log_path = 3 [default = ""];
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->log_path().data(), static_cast<int>(this->log_path().length()),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "globalmsg.algMsg.log_path");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->log_path(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:globalmsg.algMsg)
}

::google::protobuf::uint8* algMsg::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:globalmsg.algMsg)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .globalmsg.resultInfo result = 1;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->result_size()); i < n; i++) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        1, this->result(static_cast<int>(i)), deterministic, target);
  }

  cached_has_bits = _has_bits_[0];
  // optional int32 thread_queue_size = 2;
  if (cached_has_bits & 0x00000002u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(2, this->thread_queue_size(), target);
  }

  // optional string log_path = 3 [default = ""];
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->log_path().data(), static_cast<int>(this->log_path().length()),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "globalmsg.algMsg.log_path");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        3, this->log_path(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:globalmsg.algMsg)
  return target;
}

size_t algMsg::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:globalmsg.algMsg)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  // repeated .globalmsg.resultInfo result = 1;
  {
    unsigned int count = static_cast<unsigned int>(this->result_size());
    total_size += 1UL * count;
    for (unsigned int i = 0; i < count; i++) {
      total_size +=
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          this->result(static_cast<int>(i)));
    }
  }

  if (_has_bits_[0 / 32] & 3u) {
    // optional string log_path = 3 [default = ""];
    if (has_log_path()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->log_path());
    }

    // optional int32 thread_queue_size = 2;
    if (has_thread_queue_size()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->thread_queue_size());
    }

  }
  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void algMsg::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:globalmsg.algMsg)
  GOOGLE_DCHECK_NE(&from, this);
  const algMsg* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const algMsg>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:globalmsg.algMsg)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:globalmsg.algMsg)
    MergeFrom(*source);
  }
}

void algMsg::MergeFrom(const algMsg& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:globalmsg.algMsg)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  result_.MergeFrom(from.result_);
  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 3u) {
    if (cached_has_bits & 0x00000001u) {
      set_has_log_path();
      log_path_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.log_path_);
    }
    if (cached_has_bits & 0x00000002u) {
      thread_queue_size_ = from.thread_queue_size_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
}

void algMsg::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:globalmsg.algMsg)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void algMsg::CopyFrom(const algMsg& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:globalmsg.algMsg)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool algMsg::IsInitialized() const {
  if (!::google::protobuf::internal::AllAreInitialized(this->result())) return false;
  return true;
}

void algMsg::Swap(algMsg* other) {
  if (other == this) return;
  InternalSwap(other);
}
void algMsg::InternalSwap(algMsg* other) {
  using std::swap;
  result_.InternalSwap(&other->result_);
  log_path_.Swap(&other->log_path_);
  swap(thread_queue_size_, other->thread_queue_size_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata algMsg::GetMetadata() const {
  protobuf_globalmsg_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_globalmsg_2eproto::file_level_metadata[kIndexInFileMessages];
}


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

void SysMsg::InitAsDefaultInstance() {
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int SysMsg::kLogFieldNumber;
const int SysMsg::kLevelFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

SysMsg::SysMsg()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    ::protobuf_globalmsg_2eproto::InitDefaultsSysMsg();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:globalmsg.SysMsg)
}
SysMsg::SysMsg(const SysMsg& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  log_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_log()) {
    log_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.log_);
  }
  level_ = from.level_;
  // @@protoc_insertion_point(copy_constructor:globalmsg.SysMsg)
}

void SysMsg::SharedCtor() {
  _cached_size_ = 0;
  log_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  level_ = 0;
}

SysMsg::~SysMsg() {
  // @@protoc_insertion_point(destructor:globalmsg.SysMsg)
  SharedDtor();
}

void SysMsg::SharedDtor() {
  log_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void SysMsg::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* SysMsg::descriptor() {
  ::protobuf_globalmsg_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_globalmsg_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const SysMsg& SysMsg::default_instance() {
  ::protobuf_globalmsg_2eproto::InitDefaultsSysMsg();
  return *internal_default_instance();
}

SysMsg* SysMsg::New(::google::protobuf::Arena* arena) const {
  SysMsg* n = new SysMsg;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void SysMsg::Clear() {
// @@protoc_insertion_point(message_clear_start:globalmsg.SysMsg)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  if (cached_has_bits & 0x00000001u) {
    GOOGLE_DCHECK(!log_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
    (*log_.UnsafeRawStringPointer())->clear();
  }
  level_ = 0;
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool SysMsg::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:globalmsg.SysMsg)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // required string log = 1 [default = ""];
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_log()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->log().data(), static_cast<int>(this->log().length()),
            ::google::protobuf::internal::WireFormat::PARSE,
            "globalmsg.SysMsg.log");
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional .globalmsg.logLevel level = 2 [default = eSysInfo];
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          if (::globalmsg::logLevel_IsValid(value)) {
            set_level(static_cast< ::globalmsg::logLevel >(value));
          } else {
            mutable_unknown_fields()->AddVarint(
                2, static_cast< ::google::protobuf::uint64>(value));
          }
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:globalmsg.SysMsg)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:globalmsg.SysMsg)
  return false;
#undef DO_
}

void SysMsg::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:globalmsg.SysMsg)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // required string log = 1 [default = ""];
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->log().data(), static_cast<int>(this->log().length()),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "globalmsg.SysMsg.log");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->log(), output);
  }

  // optional .globalmsg.logLevel level = 2 [default = eSysInfo];
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      2, this->level(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:globalmsg.SysMsg)
}

::google::protobuf::uint8* SysMsg::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:globalmsg.SysMsg)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // required string log = 1 [default = ""];
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->log().data(), static_cast<int>(this->log().length()),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "globalmsg.SysMsg.log");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->log(), target);
  }

  // optional .globalmsg.logLevel level = 2 [default = eSysInfo];
  if (cached_has_bits & 0x00000002u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
      2, this->level(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:globalmsg.SysMsg)
  return target;
}

size_t SysMsg::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:globalmsg.SysMsg)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  // required string log = 1 [default = ""];
  if (has_log()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->log());
  }
  // optional .globalmsg.logLevel level = 2 [default = eSysInfo];
  if (has_level()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::EnumSize(this->level());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void SysMsg::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:globalmsg.SysMsg)
  GOOGLE_DCHECK_NE(&from, this);
  const SysMsg* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const SysMsg>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:globalmsg.SysMsg)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:globalmsg.SysMsg)
    MergeFrom(*source);
  }
}

void SysMsg::MergeFrom(const SysMsg& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:globalmsg.SysMsg)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 3u) {
    if (cached_has_bits & 0x00000001u) {
      set_has_log();
      log_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.log_);
    }
    if (cached_has_bits & 0x00000002u) {
      level_ = from.level_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
}

void SysMsg::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:globalmsg.SysMsg)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void SysMsg::CopyFrom(const SysMsg& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:globalmsg.SysMsg)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SysMsg::IsInitialized() const {
  if ((_has_bits_[0] & 0x00000001) != 0x00000001) return false;
  return true;
}

void SysMsg::Swap(SysMsg* other) {
  if (other == this) return;
  InternalSwap(other);
}
void SysMsg::InternalSwap(SysMsg* other) {
  using std::swap;
  log_.Swap(&other->log_);
  swap(level_, other->level_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata SysMsg::GetMetadata() const {
  protobuf_globalmsg_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_globalmsg_2eproto::file_level_metadata[kIndexInFileMessages];
}


// @@protoc_insertion_point(namespace_scope)
}  // namespace globalmsg

// @@protoc_insertion_point(global_scope)
