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

#include "OAM_datastruct.pb.h"

#include <algorithm>

#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/extension_set.h>
#include <google/protobuf/wire_format_lite.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>
// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>

PROTOBUF_PRAGMA_INIT_SEG

namespace _pb = ::PROTOBUF_NAMESPACE_ID;
namespace _pbi = _pb::internal;

PROTOBUF_CONSTEXPR DeviceRet::DeviceRet(
    ::_pbi::ConstantInitialized)
  : message_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , alarmid_(0u)
  , stationid_(0u)
  , deviceid_(0u)
  , coderet_(0)
{}
struct DeviceRetDefaultTypeInternal {
  PROTOBUF_CONSTEXPR DeviceRetDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~DeviceRetDefaultTypeInternal() {}
  union {
    DeviceRet _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 DeviceRetDefaultTypeInternal _DeviceRet_default_instance_;
PROTOBUF_CONSTEXPR Respond::Respond(
    ::_pbi::ConstantInitialized)
  : message_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , coderet_(0)
{}
struct RespondDefaultTypeInternal {
  PROTOBUF_CONSTEXPR RespondDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~RespondDefaultTypeInternal() {}
  union {
    Respond _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 RespondDefaultTypeInternal _Respond_default_instance_;
PROTOBUF_CONSTEXPR StationDevID::StationDevID(
    ::_pbi::ConstantInitialized)
  : stationid_(0u)
  , deviceid_(0u){}
struct StationDevIDDefaultTypeInternal {
  PROTOBUF_CONSTEXPR StationDevIDDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~StationDevIDDefaultTypeInternal() {}
  union {
    StationDevID _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 StationDevIDDefaultTypeInternal _StationDevID_default_instance_;
PROTOBUF_CONSTEXPR AlarmAttri::AlarmAttri(
    ::_pbi::ConstantInitialized)
  : alarmdescriptionchn_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , alarmdescriptioneng_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , createtime_(nullptr)
  , id_(0u)
  , alarmid_(0u)
  , alarmlevel_(0)

  , ismon_(0u){}
struct AlarmAttriDefaultTypeInternal {
  PROTOBUF_CONSTEXPR AlarmAttriDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~AlarmAttriDefaultTypeInternal() {}
  union {
    AlarmAttri _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AlarmAttriDefaultTypeInternal _AlarmAttri_default_instance_;
PROTOBUF_CONSTEXPR PerAttri::PerAttri(
    ::_pbi::ConstantInitialized)
  : datacatlog_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , fieldname_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , perdescriptionchn_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , perdescriptioneng_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , fieldunit_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , operand1_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , operand2_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , alarmdeschn_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , alarmdeseng_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , createtime_(nullptr)
  , id_(0u)
  , perid_(0u)
  , fieldtype_(0)

  , operator1_(0)

  , relation_(0)

  , operator2_(0)

  , ismon_(0u)
  , peralarmlevel_(0)
{}
struct PerAttriDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PerAttriDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~PerAttriDefaultTypeInternal() {}
  union {
    PerAttri _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PerAttriDefaultTypeInternal _PerAttri_default_instance_;
PROTOBUF_CONSTEXPR CurrAlarm::CurrAlarm(
    ::_pbi::ConstantInitialized)
  : alarmdescriptionchn_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , alarmdescriptioneng_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , reporttime_(nullptr)
  , id_(0u)
  , alarmid_(0u)
  , stationid_(0u)
  , deviceid_(0u)
  , alarmlevel_(0)
{}
struct CurrAlarmDefaultTypeInternal {
  PROTOBUF_CONSTEXPR CurrAlarmDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~CurrAlarmDefaultTypeInternal() {}
  union {
    CurrAlarm _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 CurrAlarmDefaultTypeInternal _CurrAlarm_default_instance_;
PROTOBUF_CONSTEXPR HisAlarm::HisAlarm(
    ::_pbi::ConstantInitialized)
  : alarmdescriptionchn_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , alarmdescriptioneng_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , starttime_(nullptr)
  , endtime_(nullptr)
  , id_(0u)
  , alarmid_(0u)
  , stationid_(0u)
  , deviceid_(0u)
  , alarmlevel_(0)
{}
struct HisAlarmDefaultTypeInternal {
  PROTOBUF_CONSTEXPR HisAlarmDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~HisAlarmDefaultTypeInternal() {}
  union {
    HisAlarm _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 HisAlarmDefaultTypeInternal _HisAlarm_default_instance_;
PROTOBUF_CONSTEXPR SysStatus::SysStatus(
    ::_pbi::ConstantInitialized)
  : reporttime_(nullptr)
  , stationid_(0u)
  , deviceid_(0u)
  , status_(0)
{}
struct SysStatusDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SysStatusDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SysStatusDefaultTypeInternal() {}
  union {
    SysStatus _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SysStatusDefaultTypeInternal _SysStatus_default_instance_;
PROTOBUF_CONSTEXPR Log::Log(
    ::_pbi::ConstantInitialized)
  : loginfochn_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , loginfoeng_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , manipunator_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , reporttime_(nullptr)
  , stationid_(0u)
  , deviceid_(0u)
  , loglevel_(0)
{}
struct LogDefaultTypeInternal {
  PROTOBUF_CONSTEXPR LogDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~LogDefaultTypeInternal() {}
  union {
    Log _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 LogDefaultTypeInternal _Log_default_instance_;
PROTOBUF_CONSTEXPR PerInfo::PerInfo(
    ::_pbi::ConstantInitialized)
  : datacatlog_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , fieldname_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , fieldvalue_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , perdescriptionchn_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , perdescriptioneng_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , updatetime_(nullptr)
  , id_(0u)
  , perid_(0u)
  , stationid_(0u)
  , deviceid_(0u){}
struct PerInfoDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PerInfoDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~PerInfoDefaultTypeInternal() {}
  union {
    PerInfo _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PerInfoDefaultTypeInternal _PerInfo_default_instance_;
PROTOBUF_CONSTEXPR PerRequire::PerRequire(
    ::_pbi::ConstantInitialized)
  : datacatlog_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , fieldname_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , ismon_(0u){}
struct PerRequireDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PerRequireDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~PerRequireDefaultTypeInternal() {}
  union {
    PerRequire _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PerRequireDefaultTypeInternal _PerRequire_default_instance_;
static ::_pb::Metadata file_level_metadata_OAM_5fdatastruct_2eproto[11];
static const ::_pb::EnumDescriptor* file_level_enum_descriptors_OAM_5fdatastruct_2eproto[5];
static constexpr ::_pb::ServiceDescriptor const** file_level_service_descriptors_OAM_5fdatastruct_2eproto = nullptr;

const uint32_t TableStruct_OAM_5fdatastruct_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::DeviceRet, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::DeviceRet, alarmid_),
  PROTOBUF_FIELD_OFFSET(::DeviceRet, stationid_),
  PROTOBUF_FIELD_OFFSET(::DeviceRet, deviceid_),
  PROTOBUF_FIELD_OFFSET(::DeviceRet, coderet_),
  PROTOBUF_FIELD_OFFSET(::DeviceRet, message_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Respond, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::Respond, coderet_),
  PROTOBUF_FIELD_OFFSET(::Respond, message_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::StationDevID, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::StationDevID, stationid_),
  PROTOBUF_FIELD_OFFSET(::StationDevID, deviceid_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::AlarmAttri, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::AlarmAttri, id_),
  PROTOBUF_FIELD_OFFSET(::AlarmAttri, alarmid_),
  PROTOBUF_FIELD_OFFSET(::AlarmAttri, alarmlevel_),
  PROTOBUF_FIELD_OFFSET(::AlarmAttri, alarmdescriptionchn_),
  PROTOBUF_FIELD_OFFSET(::AlarmAttri, alarmdescriptioneng_),
  PROTOBUF_FIELD_OFFSET(::AlarmAttri, ismon_),
  PROTOBUF_FIELD_OFFSET(::AlarmAttri, createtime_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::PerAttri, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::PerAttri, id_),
  PROTOBUF_FIELD_OFFSET(::PerAttri, perid_),
  PROTOBUF_FIELD_OFFSET(::PerAttri, datacatlog_),
  PROTOBUF_FIELD_OFFSET(::PerAttri, fieldname_),
  PROTOBUF_FIELD_OFFSET(::PerAttri, perdescriptionchn_),
  PROTOBUF_FIELD_OFFSET(::PerAttri, perdescriptioneng_),
  PROTOBUF_FIELD_OFFSET(::PerAttri, fieldtype_),
  PROTOBUF_FIELD_OFFSET(::PerAttri, fieldunit_),
  PROTOBUF_FIELD_OFFSET(::PerAttri, operator1_),
  PROTOBUF_FIELD_OFFSET(::PerAttri, operand1_),
  PROTOBUF_FIELD_OFFSET(::PerAttri, relation_),
  PROTOBUF_FIELD_OFFSET(::PerAttri, operator2_),
  PROTOBUF_FIELD_OFFSET(::PerAttri, operand2_),
  PROTOBUF_FIELD_OFFSET(::PerAttri, ismon_),
  PROTOBUF_FIELD_OFFSET(::PerAttri, peralarmlevel_),
  PROTOBUF_FIELD_OFFSET(::PerAttri, alarmdeschn_),
  PROTOBUF_FIELD_OFFSET(::PerAttri, alarmdeseng_),
  PROTOBUF_FIELD_OFFSET(::PerAttri, createtime_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::CurrAlarm, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::CurrAlarm, id_),
  PROTOBUF_FIELD_OFFSET(::CurrAlarm, alarmid_),
  PROTOBUF_FIELD_OFFSET(::CurrAlarm, stationid_),
  PROTOBUF_FIELD_OFFSET(::CurrAlarm, deviceid_),
  PROTOBUF_FIELD_OFFSET(::CurrAlarm, alarmlevel_),
  PROTOBUF_FIELD_OFFSET(::CurrAlarm, alarmdescriptionchn_),
  PROTOBUF_FIELD_OFFSET(::CurrAlarm, alarmdescriptioneng_),
  PROTOBUF_FIELD_OFFSET(::CurrAlarm, reporttime_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::HisAlarm, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::HisAlarm, id_),
  PROTOBUF_FIELD_OFFSET(::HisAlarm, alarmid_),
  PROTOBUF_FIELD_OFFSET(::HisAlarm, stationid_),
  PROTOBUF_FIELD_OFFSET(::HisAlarm, deviceid_),
  PROTOBUF_FIELD_OFFSET(::HisAlarm, alarmlevel_),
  PROTOBUF_FIELD_OFFSET(::HisAlarm, alarmdescriptionchn_),
  PROTOBUF_FIELD_OFFSET(::HisAlarm, alarmdescriptioneng_),
  PROTOBUF_FIELD_OFFSET(::HisAlarm, starttime_),
  PROTOBUF_FIELD_OFFSET(::HisAlarm, endtime_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::SysStatus, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::SysStatus, stationid_),
  PROTOBUF_FIELD_OFFSET(::SysStatus, deviceid_),
  PROTOBUF_FIELD_OFFSET(::SysStatus, status_),
  PROTOBUF_FIELD_OFFSET(::SysStatus, reporttime_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Log, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::Log, stationid_),
  PROTOBUF_FIELD_OFFSET(::Log, deviceid_),
  PROTOBUF_FIELD_OFFSET(::Log, loglevel_),
  PROTOBUF_FIELD_OFFSET(::Log, loginfochn_),
  PROTOBUF_FIELD_OFFSET(::Log, loginfoeng_),
  PROTOBUF_FIELD_OFFSET(::Log, manipunator_),
  PROTOBUF_FIELD_OFFSET(::Log, reporttime_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::PerInfo, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::PerInfo, id_),
  PROTOBUF_FIELD_OFFSET(::PerInfo, perid_),
  PROTOBUF_FIELD_OFFSET(::PerInfo, stationid_),
  PROTOBUF_FIELD_OFFSET(::PerInfo, deviceid_),
  PROTOBUF_FIELD_OFFSET(::PerInfo, datacatlog_),
  PROTOBUF_FIELD_OFFSET(::PerInfo, fieldname_),
  PROTOBUF_FIELD_OFFSET(::PerInfo, fieldvalue_),
  PROTOBUF_FIELD_OFFSET(::PerInfo, perdescriptionchn_),
  PROTOBUF_FIELD_OFFSET(::PerInfo, perdescriptioneng_),
  PROTOBUF_FIELD_OFFSET(::PerInfo, updatetime_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::PerRequire, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::PerRequire, datacatlog_),
  PROTOBUF_FIELD_OFFSET(::PerRequire, fieldname_),
  PROTOBUF_FIELD_OFFSET(::PerRequire, ismon_),
};
static const ::_pbi::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  { 0, -1, -1, sizeof(::DeviceRet)},
  { 11, -1, -1, sizeof(::Respond)},
  { 19, -1, -1, sizeof(::StationDevID)},
  { 27, -1, -1, sizeof(::AlarmAttri)},
  { 40, -1, -1, sizeof(::PerAttri)},
  { 64, -1, -1, sizeof(::CurrAlarm)},
  { 78, -1, -1, sizeof(::HisAlarm)},
  { 93, -1, -1, sizeof(::SysStatus)},
  { 103, -1, -1, sizeof(::Log)},
  { 116, -1, -1, sizeof(::PerInfo)},
  { 132, -1, -1, sizeof(::PerRequire)},
};

static const ::_pb::Message* const file_default_instances[] = {
  &::_DeviceRet_default_instance_._instance,
  &::_Respond_default_instance_._instance,
  &::_StationDevID_default_instance_._instance,
  &::_AlarmAttri_default_instance_._instance,
  &::_PerAttri_default_instance_._instance,
  &::_CurrAlarm_default_instance_._instance,
  &::_HisAlarm_default_instance_._instance,
  &::_SysStatus_default_instance_._instance,
  &::_Log_default_instance_._instance,
  &::_PerInfo_default_instance_._instance,
  &::_PerRequire_default_instance_._instance,
};

const char descriptor_table_protodef_OAM_5fdatastruct_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
  "\n\024OAM_datastruct.proto\032\037google/protobuf/"
  "timestamp.proto\032\014TDSCmd.proto\"o\n\tDeviceR"
  "et\022\017\n\007AlarmID\030\001 \001(\r\022\021\n\tStationID\030\002 \001(\r\022\020"
  "\n\010DeviceID\030\003 \001(\r\022\033\n\007CodeRet\030\004 \001(\0162\n.Code"
  "Value\022\017\n\007Message\030\005 \001(\t\"7\n\007Respond\022\033\n\007Cod"
  "eRet\030\001 \001(\0162\n.CodeValue\022\017\n\007Message\030\002 \001(\t\""
  "3\n\014StationDevID\022\021\n\tStationID\030\001 \001(\r\022\020\n\010De"
  "viceID\030\002 \001(\r\"\276\001\n\nAlarmAttri\022\n\n\002Id\030\001 \001(\r\022"
  "\017\n\007AlarmID\030\002 \001(\r\022\032\n\nAlarmLevel\030\003 \001(\0162\006.L"
  "evel\022\033\n\023AlarmDescriptionCHN\030\004 \001(\t\022\033\n\023Ala"
  "rmDescriptionENG\030\005 \001(\t\022\r\n\005IsMon\030\006 \001(\r\022.\n"
  "\nCreateTime\030\007 \001(\0132\032.google.protobuf.Time"
  "stamp\"\303\003\n\010PerAttri\022\n\n\002Id\030\001 \001(\r\022\r\n\005PerID\030"
  "\002 \001(\r\022\022\n\nDataCatlog\030\003 \001(\t\022\021\n\tFieldName\030\004"
  " \001(\t\022\031\n\021PerDescriptionCHN\030\005 \001(\t\022\031\n\021PerDe"
  "scriptionENG\030\006 \001(\t\022\037\n\tFieldType\030\007 \001(\0162\014."
  "OperandType\022\021\n\tFieldUnit\030\010 \001(\t\022\034\n\tOperat"
  "or1\030\t \001(\0162\t.Operator\022\020\n\010Operand1\030\n \001(\t\022#"
  "\n\010Relation\030\013 \001(\0162\021.RelationOperator\022\034\n\tO"
  "perator2\030\014 \001(\0162\t.Operator\022\020\n\010Operand2\030\r "
  "\001(\t\022\r\n\005IsMon\030\016 \001(\r\022\035\n\rPerAlarmLevel\030\017 \001("
  "\0162\006.Level\022\023\n\013AlarmDesCHN\030\020 \001(\t\022\023\n\013AlarmD"
  "esENG\030\021 \001(\t\022.\n\nCreateTime\030\022 \001(\0132\032.google"
  ".protobuf.Timestamp\"\323\001\n\tCurrAlarm\022\n\n\002Id\030"
  "\001 \001(\r\022\017\n\007AlarmID\030\002 \001(\r\022\021\n\tStationID\030\003 \001("
  "\r\022\020\n\010DeviceID\030\004 \001(\r\022\032\n\nAlarmLevel\030\005 \001(\0162"
  "\006.Level\022\033\n\023AlarmDescriptionCHN\030\006 \001(\t\022\033\n\023"
  "AlarmDescriptionENG\030\007 \001(\t\022.\n\nReportTime\030"
  "\010 \001(\0132\032.google.protobuf.Timestamp\"\376\001\n\010Hi"
  "sAlarm\022\n\n\002Id\030\001 \001(\r\022\017\n\007AlarmID\030\002 \001(\r\022\021\n\tS"
  "tationID\030\003 \001(\r\022\020\n\010DeviceID\030\004 \001(\r\022\032\n\nAlar"
  "mLevel\030\005 \001(\0162\006.Level\022\033\n\023AlarmDescription"
  "CHN\030\006 \001(\t\022\033\n\023AlarmDescriptionENG\030\007 \001(\t\022-"
  "\n\tStartTime\030\010 \001(\0132\032.google.protobuf.Time"
  "stamp\022+\n\007EndTime\030\t \001(\0132\032.google.protobuf"
  ".Timestamp\"}\n\tSysStatus\022\021\n\tStationID\030\001 \001"
  "(\r\022\020\n\010DeviceID\030\002 \001(\r\022\033\n\006Status\030\003 \001(\0162\013.D"
  "evistatus\022.\n\nReportTime\030\004 \001(\0132\032.google.p"
  "rotobuf.Timestamp\"\264\001\n\003Log\022\021\n\tStationID\030\001"
  " \001(\r\022\020\n\010DeviceID\030\002 \001(\r\022\033\n\010Loglevel\030\003 \001(\016"
  "2\t.LogLevel\022\022\n\nLogInfoCHN\030\004 \001(\t\022\022\n\nLogIn"
  "foENG\030\005 \001(\t\022\023\n\013Manipunator\030\006 \001(\t\022.\n\nRepo"
  "rtTime\030\007 \001(\0132\032.google.protobuf.Timestamp"
  "\"\352\001\n\007PerInfo\022\n\n\002Id\030\001 \001(\r\022\r\n\005PerID\030\002 \001(\r\022"
  "\021\n\tStationID\030\003 \001(\r\022\020\n\010DeviceID\030\004 \001(\r\022\022\n\n"
  "DataCatlog\030\005 \001(\t\022\021\n\tFieldName\030\006 \001(\t\022\022\n\nF"
  "ieldValue\030\007 \001(\t\022\031\n\021PerDescriptionCHN\030\010 \001"
  "(\t\022\031\n\021PerDescriptionENG\030\t \001(\t\022.\n\nUpdateT"
  "ime\030\n \001(\0132\032.google.protobuf.Timestamp\"B\n"
  "\nPerRequire\022\022\n\nDataCatlog\030\001 \001(\t\022\021\n\tField"
  "Name\030\002 \001(\t\022\r\n\005IsMon\030\003 \001(\r*\?\n\005Level\022\020\n\014De"
  "faul_Level\020\000\022\020\n\014Normal_Alarm\020\001\022\022\n\016Critic"
  "al_Alarm\020\002*D\n\010LogLevel\022\024\n\020Default_LogLev"
  "el\020\000\022\n\n\006Normal\020\001\022\013\n\007Warning\020\002\022\t\n\005Error\020\003"
  "*V\n\013OperandType\022\014\n\010_DEFAULT\020\000\022\t\n\005_UINT\020\001"
  "\022\010\n\004_INT\020\002\022\013\n\007_STRING\020\003\022\n\n\006_FLOAT\020\004\022\013\n\007_"
  "DOUBLE\020\005*\215\001\n\010Operator\022\024\n\020Default_Operato"
  "r\020\000\022\017\n\013GreaterThan\020\001\022\030\n\024GreaterThanOrEqu"
  "alTo\020\002\022\013\n\007EqualTo\020\003\022\014\n\010LessThan\020\004\022\025\n\021Les"
  "sThanOrEqualTo\020\005\022\016\n\nNotEqualTo\020\006*A\n\020Rela"
  "tionOperator\022\034\n\030Default_RelationOperator"
  "\020\000\022\007\n\003AND\020\001\022\006\n\002OR\020\002B\014Z\n../protogob\006proto"
  "3"
  ;
static const ::_pbi::DescriptorTable* const descriptor_table_OAM_5fdatastruct_2eproto_deps[2] = {
  &::descriptor_table_TDSCmd_2eproto,
  &::descriptor_table_google_2fprotobuf_2ftimestamp_2eproto,
};
static ::_pbi::once_flag descriptor_table_OAM_5fdatastruct_2eproto_once;
const ::_pbi::DescriptorTable descriptor_table_OAM_5fdatastruct_2eproto = {
    false, false, 2481, descriptor_table_protodef_OAM_5fdatastruct_2eproto,
    "OAM_datastruct.proto",
    &descriptor_table_OAM_5fdatastruct_2eproto_once, descriptor_table_OAM_5fdatastruct_2eproto_deps, 2, 11,
    schemas, file_default_instances, TableStruct_OAM_5fdatastruct_2eproto::offsets,
    file_level_metadata_OAM_5fdatastruct_2eproto, file_level_enum_descriptors_OAM_5fdatastruct_2eproto,
    file_level_service_descriptors_OAM_5fdatastruct_2eproto,
};
PROTOBUF_ATTRIBUTE_WEAK const ::_pbi::DescriptorTable* descriptor_table_OAM_5fdatastruct_2eproto_getter() {
  return &descriptor_table_OAM_5fdatastruct_2eproto;
}

// Force running AddDescriptors() at dynamic initialization time.
PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 static ::_pbi::AddDescriptorsRunner dynamic_init_dummy_OAM_5fdatastruct_2eproto(&descriptor_table_OAM_5fdatastruct_2eproto);
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Level_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_OAM_5fdatastruct_2eproto);
  return file_level_enum_descriptors_OAM_5fdatastruct_2eproto[0];
}
bool Level_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* LogLevel_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_OAM_5fdatastruct_2eproto);
  return file_level_enum_descriptors_OAM_5fdatastruct_2eproto[1];
}
bool LogLevel_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* OperandType_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_OAM_5fdatastruct_2eproto);
  return file_level_enum_descriptors_OAM_5fdatastruct_2eproto[2];
}
bool OperandType_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Operator_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_OAM_5fdatastruct_2eproto);
  return file_level_enum_descriptors_OAM_5fdatastruct_2eproto[3];
}
bool Operator_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* RelationOperator_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_OAM_5fdatastruct_2eproto);
  return file_level_enum_descriptors_OAM_5fdatastruct_2eproto[4];
}
bool RelationOperator_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
      return true;
    default:
      return false;
  }
}


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

class DeviceRet::_Internal {
 public:
};

DeviceRet::DeviceRet(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:DeviceRet)
}
DeviceRet::DeviceRet(const DeviceRet& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  message_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    message_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_message().empty()) {
    message_.Set(from._internal_message(), 
      GetArenaForAllocation());
  }
  ::memcpy(&alarmid_, &from.alarmid_,
    static_cast<size_t>(reinterpret_cast<char*>(&coderet_) -
    reinterpret_cast<char*>(&alarmid_)) + sizeof(coderet_));
  // @@protoc_insertion_point(copy_constructor:DeviceRet)
}

inline void DeviceRet::SharedCtor() {
message_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  message_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&alarmid_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&coderet_) -
    reinterpret_cast<char*>(&alarmid_)) + sizeof(coderet_));
}

DeviceRet::~DeviceRet() {
  // @@protoc_insertion_point(destructor:DeviceRet)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void DeviceRet::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  message_.Destroy();
}

void DeviceRet::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void DeviceRet::Clear() {
// @@protoc_insertion_point(message_clear_start:DeviceRet)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  message_.ClearToEmpty();
  ::memset(&alarmid_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&coderet_) -
      reinterpret_cast<char*>(&alarmid_)) + sizeof(coderet_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* DeviceRet::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // uint32 AlarmID = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          alarmid_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // uint32 StationID = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          stationid_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // uint32 DeviceID = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          deviceid_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .CodeValue CodeRet = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_coderet(static_cast<::CodeValue>(val));
        } else
          goto handle_unusual;
        continue;
      // string Message = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          auto str = _internal_mutable_message();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "DeviceRet.Message"));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* DeviceRet::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:DeviceRet)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // uint32 AlarmID = 1;
  if (this->_internal_alarmid() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(1, this->_internal_alarmid(), target);
  }

  // uint32 StationID = 2;
  if (this->_internal_stationid() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(2, this->_internal_stationid(), target);
  }

  // uint32 DeviceID = 3;
  if (this->_internal_deviceid() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(3, this->_internal_deviceid(), target);
  }

  // .CodeValue CodeRet = 4;
  if (this->_internal_coderet() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
      4, this->_internal_coderet(), target);
  }

  // string Message = 5;
  if (!this->_internal_message().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_message().data(), static_cast<int>(this->_internal_message().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "DeviceRet.Message");
    target = stream->WriteStringMaybeAliased(
        5, this->_internal_message(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:DeviceRet)
  return target;
}

size_t DeviceRet::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:DeviceRet)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string Message = 5;
  if (!this->_internal_message().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_message());
  }

  // uint32 AlarmID = 1;
  if (this->_internal_alarmid() != 0) {
    total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_alarmid());
  }

  // uint32 StationID = 2;
  if (this->_internal_stationid() != 0) {
    total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_stationid());
  }

  // uint32 DeviceID = 3;
  if (this->_internal_deviceid() != 0) {
    total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_deviceid());
  }

  // .CodeValue CodeRet = 4;
  if (this->_internal_coderet() != 0) {
    total_size += 1 +
      ::_pbi::WireFormatLite::EnumSize(this->_internal_coderet());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData DeviceRet::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    DeviceRet::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*DeviceRet::GetClassData() const { return &_class_data_; }

void DeviceRet::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<DeviceRet *>(to)->MergeFrom(
      static_cast<const DeviceRet &>(from));
}


void DeviceRet::MergeFrom(const DeviceRet& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:DeviceRet)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_message().empty()) {
    _internal_set_message(from._internal_message());
  }
  if (from._internal_alarmid() != 0) {
    _internal_set_alarmid(from._internal_alarmid());
  }
  if (from._internal_stationid() != 0) {
    _internal_set_stationid(from._internal_stationid());
  }
  if (from._internal_deviceid() != 0) {
    _internal_set_deviceid(from._internal_deviceid());
  }
  if (from._internal_coderet() != 0) {
    _internal_set_coderet(from._internal_coderet());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

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

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

void DeviceRet::InternalSwap(DeviceRet* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &message_, lhs_arena,
      &other->message_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(DeviceRet, coderet_)
      + sizeof(DeviceRet::coderet_)
      - PROTOBUF_FIELD_OFFSET(DeviceRet, alarmid_)>(
          reinterpret_cast<char*>(&alarmid_),
          reinterpret_cast<char*>(&other->alarmid_));
}

::PROTOBUF_NAMESPACE_ID::Metadata DeviceRet::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_OAM_5fdatastruct_2eproto_getter, &descriptor_table_OAM_5fdatastruct_2eproto_once,
      file_level_metadata_OAM_5fdatastruct_2eproto[0]);
}

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

class Respond::_Internal {
 public:
};

Respond::Respond(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:Respond)
}
Respond::Respond(const Respond& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  message_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    message_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_message().empty()) {
    message_.Set(from._internal_message(), 
      GetArenaForAllocation());
  }
  coderet_ = from.coderet_;
  // @@protoc_insertion_point(copy_constructor:Respond)
}

inline void Respond::SharedCtor() {
message_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  message_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
coderet_ = 0;
}

Respond::~Respond() {
  // @@protoc_insertion_point(destructor:Respond)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void Respond::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  message_.Destroy();
}

void Respond::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void Respond::Clear() {
// @@protoc_insertion_point(message_clear_start:Respond)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  message_.ClearToEmpty();
  coderet_ = 0;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Respond::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // .CodeValue CodeRet = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_coderet(static_cast<::CodeValue>(val));
        } else
          goto handle_unusual;
        continue;
      // string Message = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_message();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "Respond.Message"));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* Respond::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Respond)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // .CodeValue CodeRet = 1;
  if (this->_internal_coderet() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
      1, this->_internal_coderet(), target);
  }

  // string Message = 2;
  if (!this->_internal_message().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_message().data(), static_cast<int>(this->_internal_message().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Respond.Message");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_message(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Respond)
  return target;
}

size_t Respond::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Respond)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string Message = 2;
  if (!this->_internal_message().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_message());
  }

  // .CodeValue CodeRet = 1;
  if (this->_internal_coderet() != 0) {
    total_size += 1 +
      ::_pbi::WireFormatLite::EnumSize(this->_internal_coderet());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Respond::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    Respond::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Respond::GetClassData() const { return &_class_data_; }

void Respond::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<Respond *>(to)->MergeFrom(
      static_cast<const Respond &>(from));
}


void Respond::MergeFrom(const Respond& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Respond)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_message().empty()) {
    _internal_set_message(from._internal_message());
  }
  if (from._internal_coderet() != 0) {
    _internal_set_coderet(from._internal_coderet());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

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

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

void Respond::InternalSwap(Respond* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &message_, lhs_arena,
      &other->message_, rhs_arena
  );
  swap(coderet_, other->coderet_);
}

::PROTOBUF_NAMESPACE_ID::Metadata Respond::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_OAM_5fdatastruct_2eproto_getter, &descriptor_table_OAM_5fdatastruct_2eproto_once,
      file_level_metadata_OAM_5fdatastruct_2eproto[1]);
}

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

class StationDevID::_Internal {
 public:
};

StationDevID::StationDevID(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:StationDevID)
}
StationDevID::StationDevID(const StationDevID& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&stationid_, &from.stationid_,
    static_cast<size_t>(reinterpret_cast<char*>(&deviceid_) -
    reinterpret_cast<char*>(&stationid_)) + sizeof(deviceid_));
  // @@protoc_insertion_point(copy_constructor:StationDevID)
}

inline void StationDevID::SharedCtor() {
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&stationid_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&deviceid_) -
    reinterpret_cast<char*>(&stationid_)) + sizeof(deviceid_));
}

StationDevID::~StationDevID() {
  // @@protoc_insertion_point(destructor:StationDevID)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void StationDevID::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void StationDevID::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void StationDevID::Clear() {
// @@protoc_insertion_point(message_clear_start:StationDevID)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&stationid_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&deviceid_) -
      reinterpret_cast<char*>(&stationid_)) + sizeof(deviceid_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* StationDevID::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // uint32 StationID = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          stationid_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // uint32 DeviceID = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          deviceid_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* StationDevID::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:StationDevID)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // uint32 StationID = 1;
  if (this->_internal_stationid() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(1, this->_internal_stationid(), target);
  }

  // uint32 DeviceID = 2;
  if (this->_internal_deviceid() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(2, this->_internal_deviceid(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:StationDevID)
  return target;
}

size_t StationDevID::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:StationDevID)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // uint32 StationID = 1;
  if (this->_internal_stationid() != 0) {
    total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_stationid());
  }

  // uint32 DeviceID = 2;
  if (this->_internal_deviceid() != 0) {
    total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_deviceid());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData StationDevID::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    StationDevID::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*StationDevID::GetClassData() const { return &_class_data_; }

void StationDevID::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<StationDevID *>(to)->MergeFrom(
      static_cast<const StationDevID &>(from));
}


void StationDevID::MergeFrom(const StationDevID& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:StationDevID)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (from._internal_stationid() != 0) {
    _internal_set_stationid(from._internal_stationid());
  }
  if (from._internal_deviceid() != 0) {
    _internal_set_deviceid(from._internal_deviceid());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

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

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

void StationDevID::InternalSwap(StationDevID* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(StationDevID, deviceid_)
      + sizeof(StationDevID::deviceid_)
      - PROTOBUF_FIELD_OFFSET(StationDevID, stationid_)>(
          reinterpret_cast<char*>(&stationid_),
          reinterpret_cast<char*>(&other->stationid_));
}

::PROTOBUF_NAMESPACE_ID::Metadata StationDevID::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_OAM_5fdatastruct_2eproto_getter, &descriptor_table_OAM_5fdatastruct_2eproto_once,
      file_level_metadata_OAM_5fdatastruct_2eproto[2]);
}

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

class AlarmAttri::_Internal {
 public:
  static const ::PROTOBUF_NAMESPACE_ID::Timestamp& createtime(const AlarmAttri* msg);
};

const ::PROTOBUF_NAMESPACE_ID::Timestamp&
AlarmAttri::_Internal::createtime(const AlarmAttri* msg) {
  return *msg->createtime_;
}
void AlarmAttri::clear_createtime() {
  if (GetArenaForAllocation() == nullptr && createtime_ != nullptr) {
    delete createtime_;
  }
  createtime_ = nullptr;
}
AlarmAttri::AlarmAttri(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:AlarmAttri)
}
AlarmAttri::AlarmAttri(const AlarmAttri& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  alarmdescriptionchn_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    alarmdescriptionchn_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_alarmdescriptionchn().empty()) {
    alarmdescriptionchn_.Set(from._internal_alarmdescriptionchn(), 
      GetArenaForAllocation());
  }
  alarmdescriptioneng_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    alarmdescriptioneng_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_alarmdescriptioneng().empty()) {
    alarmdescriptioneng_.Set(from._internal_alarmdescriptioneng(), 
      GetArenaForAllocation());
  }
  if (from._internal_has_createtime()) {
    createtime_ = new ::PROTOBUF_NAMESPACE_ID::Timestamp(*from.createtime_);
  } else {
    createtime_ = nullptr;
  }
  ::memcpy(&id_, &from.id_,
    static_cast<size_t>(reinterpret_cast<char*>(&ismon_) -
    reinterpret_cast<char*>(&id_)) + sizeof(ismon_));
  // @@protoc_insertion_point(copy_constructor:AlarmAttri)
}

inline void AlarmAttri::SharedCtor() {
alarmdescriptionchn_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  alarmdescriptionchn_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
alarmdescriptioneng_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  alarmdescriptioneng_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&createtime_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&ismon_) -
    reinterpret_cast<char*>(&createtime_)) + sizeof(ismon_));
}

AlarmAttri::~AlarmAttri() {
  // @@protoc_insertion_point(destructor:AlarmAttri)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void AlarmAttri::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  alarmdescriptionchn_.Destroy();
  alarmdescriptioneng_.Destroy();
  if (this != internal_default_instance()) delete createtime_;
}

void AlarmAttri::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void AlarmAttri::Clear() {
// @@protoc_insertion_point(message_clear_start:AlarmAttri)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  alarmdescriptionchn_.ClearToEmpty();
  alarmdescriptioneng_.ClearToEmpty();
  if (GetArenaForAllocation() == nullptr && createtime_ != nullptr) {
    delete createtime_;
  }
  createtime_ = nullptr;
  ::memset(&id_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&ismon_) -
      reinterpret_cast<char*>(&id_)) + sizeof(ismon_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* AlarmAttri::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // uint32 Id = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // uint32 AlarmID = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          alarmid_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .Level AlarmLevel = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_alarmlevel(static_cast<::Level>(val));
        } else
          goto handle_unusual;
        continue;
      // string AlarmDescriptionCHN = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_alarmdescriptionchn();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "AlarmAttri.AlarmDescriptionCHN"));
        } else
          goto handle_unusual;
        continue;
      // string AlarmDescriptionENG = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          auto str = _internal_mutable_alarmdescriptioneng();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "AlarmAttri.AlarmDescriptionENG"));
        } else
          goto handle_unusual;
        continue;
      // uint32 IsMon = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 48)) {
          ismon_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .google.protobuf.Timestamp CreateTime = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
          ptr = ctx->ParseMessage(_internal_mutable_createtime(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* AlarmAttri::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:AlarmAttri)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // uint32 Id = 1;
  if (this->_internal_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(1, this->_internal_id(), target);
  }

  // uint32 AlarmID = 2;
  if (this->_internal_alarmid() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(2, this->_internal_alarmid(), target);
  }

  // .Level AlarmLevel = 3;
  if (this->_internal_alarmlevel() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
      3, this->_internal_alarmlevel(), target);
  }

  // string AlarmDescriptionCHN = 4;
  if (!this->_internal_alarmdescriptionchn().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_alarmdescriptionchn().data(), static_cast<int>(this->_internal_alarmdescriptionchn().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "AlarmAttri.AlarmDescriptionCHN");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_alarmdescriptionchn(), target);
  }

  // string AlarmDescriptionENG = 5;
  if (!this->_internal_alarmdescriptioneng().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_alarmdescriptioneng().data(), static_cast<int>(this->_internal_alarmdescriptioneng().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "AlarmAttri.AlarmDescriptionENG");
    target = stream->WriteStringMaybeAliased(
        5, this->_internal_alarmdescriptioneng(), target);
  }

  // uint32 IsMon = 6;
  if (this->_internal_ismon() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(6, this->_internal_ismon(), target);
  }

  // .google.protobuf.Timestamp CreateTime = 7;
  if (this->_internal_has_createtime()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(7, _Internal::createtime(this),
        _Internal::createtime(this).GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:AlarmAttri)
  return target;
}

size_t AlarmAttri::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:AlarmAttri)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string AlarmDescriptionCHN = 4;
  if (!this->_internal_alarmdescriptionchn().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_alarmdescriptionchn());
  }

  // string AlarmDescriptionENG = 5;
  if (!this->_internal_alarmdescriptioneng().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_alarmdescriptioneng());
  }

  // .google.protobuf.Timestamp CreateTime = 7;
  if (this->_internal_has_createtime()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *createtime_);
  }

  // uint32 Id = 1;
  if (this->_internal_id() != 0) {
    total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_id());
  }

  // uint32 AlarmID = 2;
  if (this->_internal_alarmid() != 0) {
    total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_alarmid());
  }

  // .Level AlarmLevel = 3;
  if (this->_internal_alarmlevel() != 0) {
    total_size += 1 +
      ::_pbi::WireFormatLite::EnumSize(this->_internal_alarmlevel());
  }

  // uint32 IsMon = 6;
  if (this->_internal_ismon() != 0) {
    total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_ismon());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData AlarmAttri::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    AlarmAttri::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*AlarmAttri::GetClassData() const { return &_class_data_; }

void AlarmAttri::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<AlarmAttri *>(to)->MergeFrom(
      static_cast<const AlarmAttri &>(from));
}


void AlarmAttri::MergeFrom(const AlarmAttri& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:AlarmAttri)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_alarmdescriptionchn().empty()) {
    _internal_set_alarmdescriptionchn(from._internal_alarmdescriptionchn());
  }
  if (!from._internal_alarmdescriptioneng().empty()) {
    _internal_set_alarmdescriptioneng(from._internal_alarmdescriptioneng());
  }
  if (from._internal_has_createtime()) {
    _internal_mutable_createtime()->::PROTOBUF_NAMESPACE_ID::Timestamp::MergeFrom(from._internal_createtime());
  }
  if (from._internal_id() != 0) {
    _internal_set_id(from._internal_id());
  }
  if (from._internal_alarmid() != 0) {
    _internal_set_alarmid(from._internal_alarmid());
  }
  if (from._internal_alarmlevel() != 0) {
    _internal_set_alarmlevel(from._internal_alarmlevel());
  }
  if (from._internal_ismon() != 0) {
    _internal_set_ismon(from._internal_ismon());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

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

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

void AlarmAttri::InternalSwap(AlarmAttri* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &alarmdescriptionchn_, lhs_arena,
      &other->alarmdescriptionchn_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &alarmdescriptioneng_, lhs_arena,
      &other->alarmdescriptioneng_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(AlarmAttri, ismon_)
      + sizeof(AlarmAttri::ismon_)
      - PROTOBUF_FIELD_OFFSET(AlarmAttri, createtime_)>(
          reinterpret_cast<char*>(&createtime_),
          reinterpret_cast<char*>(&other->createtime_));
}

::PROTOBUF_NAMESPACE_ID::Metadata AlarmAttri::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_OAM_5fdatastruct_2eproto_getter, &descriptor_table_OAM_5fdatastruct_2eproto_once,
      file_level_metadata_OAM_5fdatastruct_2eproto[3]);
}

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

class PerAttri::_Internal {
 public:
  static const ::PROTOBUF_NAMESPACE_ID::Timestamp& createtime(const PerAttri* msg);
};

const ::PROTOBUF_NAMESPACE_ID::Timestamp&
PerAttri::_Internal::createtime(const PerAttri* msg) {
  return *msg->createtime_;
}
void PerAttri::clear_createtime() {
  if (GetArenaForAllocation() == nullptr && createtime_ != nullptr) {
    delete createtime_;
  }
  createtime_ = nullptr;
}
PerAttri::PerAttri(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:PerAttri)
}
PerAttri::PerAttri(const PerAttri& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  datacatlog_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    datacatlog_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_datacatlog().empty()) {
    datacatlog_.Set(from._internal_datacatlog(), 
      GetArenaForAllocation());
  }
  fieldname_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    fieldname_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_fieldname().empty()) {
    fieldname_.Set(from._internal_fieldname(), 
      GetArenaForAllocation());
  }
  perdescriptionchn_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    perdescriptionchn_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_perdescriptionchn().empty()) {
    perdescriptionchn_.Set(from._internal_perdescriptionchn(), 
      GetArenaForAllocation());
  }
  perdescriptioneng_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    perdescriptioneng_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_perdescriptioneng().empty()) {
    perdescriptioneng_.Set(from._internal_perdescriptioneng(), 
      GetArenaForAllocation());
  }
  fieldunit_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    fieldunit_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_fieldunit().empty()) {
    fieldunit_.Set(from._internal_fieldunit(), 
      GetArenaForAllocation());
  }
  operand1_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    operand1_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_operand1().empty()) {
    operand1_.Set(from._internal_operand1(), 
      GetArenaForAllocation());
  }
  operand2_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    operand2_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_operand2().empty()) {
    operand2_.Set(from._internal_operand2(), 
      GetArenaForAllocation());
  }
  alarmdeschn_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    alarmdeschn_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_alarmdeschn().empty()) {
    alarmdeschn_.Set(from._internal_alarmdeschn(), 
      GetArenaForAllocation());
  }
  alarmdeseng_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    alarmdeseng_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_alarmdeseng().empty()) {
    alarmdeseng_.Set(from._internal_alarmdeseng(), 
      GetArenaForAllocation());
  }
  if (from._internal_has_createtime()) {
    createtime_ = new ::PROTOBUF_NAMESPACE_ID::Timestamp(*from.createtime_);
  } else {
    createtime_ = nullptr;
  }
  ::memcpy(&id_, &from.id_,
    static_cast<size_t>(reinterpret_cast<char*>(&peralarmlevel_) -
    reinterpret_cast<char*>(&id_)) + sizeof(peralarmlevel_));
  // @@protoc_insertion_point(copy_constructor:PerAttri)
}

inline void PerAttri::SharedCtor() {
datacatlog_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  datacatlog_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
fieldname_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  fieldname_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
perdescriptionchn_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  perdescriptionchn_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
perdescriptioneng_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  perdescriptioneng_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
fieldunit_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  fieldunit_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
operand1_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  operand1_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
operand2_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  operand2_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
alarmdeschn_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  alarmdeschn_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
alarmdeseng_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  alarmdeseng_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&createtime_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&peralarmlevel_) -
    reinterpret_cast<char*>(&createtime_)) + sizeof(peralarmlevel_));
}

PerAttri::~PerAttri() {
  // @@protoc_insertion_point(destructor:PerAttri)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void PerAttri::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  datacatlog_.Destroy();
  fieldname_.Destroy();
  perdescriptionchn_.Destroy();
  perdescriptioneng_.Destroy();
  fieldunit_.Destroy();
  operand1_.Destroy();
  operand2_.Destroy();
  alarmdeschn_.Destroy();
  alarmdeseng_.Destroy();
  if (this != internal_default_instance()) delete createtime_;
}

void PerAttri::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void PerAttri::Clear() {
// @@protoc_insertion_point(message_clear_start:PerAttri)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  datacatlog_.ClearToEmpty();
  fieldname_.ClearToEmpty();
  perdescriptionchn_.ClearToEmpty();
  perdescriptioneng_.ClearToEmpty();
  fieldunit_.ClearToEmpty();
  operand1_.ClearToEmpty();
  operand2_.ClearToEmpty();
  alarmdeschn_.ClearToEmpty();
  alarmdeseng_.ClearToEmpty();
  if (GetArenaForAllocation() == nullptr && createtime_ != nullptr) {
    delete createtime_;
  }
  createtime_ = nullptr;
  ::memset(&id_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&peralarmlevel_) -
      reinterpret_cast<char*>(&id_)) + sizeof(peralarmlevel_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* PerAttri::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // uint32 Id = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // uint32 PerID = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          perid_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string DataCatlog = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_datacatlog();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "PerAttri.DataCatlog"));
        } else
          goto handle_unusual;
        continue;
      // string FieldName = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_fieldname();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "PerAttri.FieldName"));
        } else
          goto handle_unusual;
        continue;
      // string PerDescriptionCHN = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          auto str = _internal_mutable_perdescriptionchn();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "PerAttri.PerDescriptionCHN"));
        } else
          goto handle_unusual;
        continue;
      // string PerDescriptionENG = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          auto str = _internal_mutable_perdescriptioneng();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "PerAttri.PerDescriptionENG"));
        } else
          goto handle_unusual;
        continue;
      // .OperandType FieldType = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 56)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_fieldtype(static_cast<::OperandType>(val));
        } else
          goto handle_unusual;
        continue;
      // string FieldUnit = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 66)) {
          auto str = _internal_mutable_fieldunit();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "PerAttri.FieldUnit"));
        } else
          goto handle_unusual;
        continue;
      // .Operator Operator1 = 9;
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 72)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_operator1(static_cast<::Operator>(val));
        } else
          goto handle_unusual;
        continue;
      // string Operand1 = 10;
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 82)) {
          auto str = _internal_mutable_operand1();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "PerAttri.Operand1"));
        } else
          goto handle_unusual;
        continue;
      // .RelationOperator Relation = 11;
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 88)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_relation(static_cast<::RelationOperator>(val));
        } else
          goto handle_unusual;
        continue;
      // .Operator Operator2 = 12;
      case 12:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 96)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_operator2(static_cast<::Operator>(val));
        } else
          goto handle_unusual;
        continue;
      // string Operand2 = 13;
      case 13:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 106)) {
          auto str = _internal_mutable_operand2();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "PerAttri.Operand2"));
        } else
          goto handle_unusual;
        continue;
      // uint32 IsMon = 14;
      case 14:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 112)) {
          ismon_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .Level PerAlarmLevel = 15;
      case 15:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 120)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_peralarmlevel(static_cast<::Level>(val));
        } else
          goto handle_unusual;
        continue;
      // string AlarmDesCHN = 16;
      case 16:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 130)) {
          auto str = _internal_mutable_alarmdeschn();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "PerAttri.AlarmDesCHN"));
        } else
          goto handle_unusual;
        continue;
      // string AlarmDesENG = 17;
      case 17:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 138)) {
          auto str = _internal_mutable_alarmdeseng();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "PerAttri.AlarmDesENG"));
        } else
          goto handle_unusual;
        continue;
      // .google.protobuf.Timestamp CreateTime = 18;
      case 18:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 146)) {
          ptr = ctx->ParseMessage(_internal_mutable_createtime(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* PerAttri::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:PerAttri)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // uint32 Id = 1;
  if (this->_internal_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(1, this->_internal_id(), target);
  }

  // uint32 PerID = 2;
  if (this->_internal_perid() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(2, this->_internal_perid(), target);
  }

  // string DataCatlog = 3;
  if (!this->_internal_datacatlog().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_datacatlog().data(), static_cast<int>(this->_internal_datacatlog().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "PerAttri.DataCatlog");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_datacatlog(), target);
  }

  // string FieldName = 4;
  if (!this->_internal_fieldname().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_fieldname().data(), static_cast<int>(this->_internal_fieldname().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "PerAttri.FieldName");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_fieldname(), target);
  }

  // string PerDescriptionCHN = 5;
  if (!this->_internal_perdescriptionchn().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_perdescriptionchn().data(), static_cast<int>(this->_internal_perdescriptionchn().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "PerAttri.PerDescriptionCHN");
    target = stream->WriteStringMaybeAliased(
        5, this->_internal_perdescriptionchn(), target);
  }

  // string PerDescriptionENG = 6;
  if (!this->_internal_perdescriptioneng().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_perdescriptioneng().data(), static_cast<int>(this->_internal_perdescriptioneng().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "PerAttri.PerDescriptionENG");
    target = stream->WriteStringMaybeAliased(
        6, this->_internal_perdescriptioneng(), target);
  }

  // .OperandType FieldType = 7;
  if (this->_internal_fieldtype() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
      7, this->_internal_fieldtype(), target);
  }

  // string FieldUnit = 8;
  if (!this->_internal_fieldunit().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_fieldunit().data(), static_cast<int>(this->_internal_fieldunit().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "PerAttri.FieldUnit");
    target = stream->WriteStringMaybeAliased(
        8, this->_internal_fieldunit(), target);
  }

  // .Operator Operator1 = 9;
  if (this->_internal_operator1() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
      9, this->_internal_operator1(), target);
  }

  // string Operand1 = 10;
  if (!this->_internal_operand1().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_operand1().data(), static_cast<int>(this->_internal_operand1().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "PerAttri.Operand1");
    target = stream->WriteStringMaybeAliased(
        10, this->_internal_operand1(), target);
  }

  // .RelationOperator Relation = 11;
  if (this->_internal_relation() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
      11, this->_internal_relation(), target);
  }

  // .Operator Operator2 = 12;
  if (this->_internal_operator2() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
      12, this->_internal_operator2(), target);
  }

  // string Operand2 = 13;
  if (!this->_internal_operand2().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_operand2().data(), static_cast<int>(this->_internal_operand2().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "PerAttri.Operand2");
    target = stream->WriteStringMaybeAliased(
        13, this->_internal_operand2(), target);
  }

  // uint32 IsMon = 14;
  if (this->_internal_ismon() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(14, this->_internal_ismon(), target);
  }

  // .Level PerAlarmLevel = 15;
  if (this->_internal_peralarmlevel() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
      15, this->_internal_peralarmlevel(), target);
  }

  // string AlarmDesCHN = 16;
  if (!this->_internal_alarmdeschn().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_alarmdeschn().data(), static_cast<int>(this->_internal_alarmdeschn().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "PerAttri.AlarmDesCHN");
    target = stream->WriteStringMaybeAliased(
        16, this->_internal_alarmdeschn(), target);
  }

  // string AlarmDesENG = 17;
  if (!this->_internal_alarmdeseng().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_alarmdeseng().data(), static_cast<int>(this->_internal_alarmdeseng().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "PerAttri.AlarmDesENG");
    target = stream->WriteStringMaybeAliased(
        17, this->_internal_alarmdeseng(), target);
  }

  // .google.protobuf.Timestamp CreateTime = 18;
  if (this->_internal_has_createtime()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(18, _Internal::createtime(this),
        _Internal::createtime(this).GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:PerAttri)
  return target;
}

size_t PerAttri::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:PerAttri)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string DataCatlog = 3;
  if (!this->_internal_datacatlog().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_datacatlog());
  }

  // string FieldName = 4;
  if (!this->_internal_fieldname().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_fieldname());
  }

  // string PerDescriptionCHN = 5;
  if (!this->_internal_perdescriptionchn().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_perdescriptionchn());
  }

  // string PerDescriptionENG = 6;
  if (!this->_internal_perdescriptioneng().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_perdescriptioneng());
  }

  // string FieldUnit = 8;
  if (!this->_internal_fieldunit().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_fieldunit());
  }

  // string Operand1 = 10;
  if (!this->_internal_operand1().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_operand1());
  }

  // string Operand2 = 13;
  if (!this->_internal_operand2().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_operand2());
  }

  // string AlarmDesCHN = 16;
  if (!this->_internal_alarmdeschn().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_alarmdeschn());
  }

  // string AlarmDesENG = 17;
  if (!this->_internal_alarmdeseng().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_alarmdeseng());
  }

  // .google.protobuf.Timestamp CreateTime = 18;
  if (this->_internal_has_createtime()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *createtime_);
  }

  // uint32 Id = 1;
  if (this->_internal_id() != 0) {
    total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_id());
  }

  // uint32 PerID = 2;
  if (this->_internal_perid() != 0) {
    total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_perid());
  }

  // .OperandType FieldType = 7;
  if (this->_internal_fieldtype() != 0) {
    total_size += 1 +
      ::_pbi::WireFormatLite::EnumSize(this->_internal_fieldtype());
  }

  // .Operator Operator1 = 9;
  if (this->_internal_operator1() != 0) {
    total_size += 1 +
      ::_pbi::WireFormatLite::EnumSize(this->_internal_operator1());
  }

  // .RelationOperator Relation = 11;
  if (this->_internal_relation() != 0) {
    total_size += 1 +
      ::_pbi::WireFormatLite::EnumSize(this->_internal_relation());
  }

  // .Operator Operator2 = 12;
  if (this->_internal_operator2() != 0) {
    total_size += 1 +
      ::_pbi::WireFormatLite::EnumSize(this->_internal_operator2());
  }

  // uint32 IsMon = 14;
  if (this->_internal_ismon() != 0) {
    total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_ismon());
  }

  // .Level PerAlarmLevel = 15;
  if (this->_internal_peralarmlevel() != 0) {
    total_size += 1 +
      ::_pbi::WireFormatLite::EnumSize(this->_internal_peralarmlevel());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData PerAttri::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    PerAttri::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*PerAttri::GetClassData() const { return &_class_data_; }

void PerAttri::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<PerAttri *>(to)->MergeFrom(
      static_cast<const PerAttri &>(from));
}


void PerAttri::MergeFrom(const PerAttri& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:PerAttri)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_datacatlog().empty()) {
    _internal_set_datacatlog(from._internal_datacatlog());
  }
  if (!from._internal_fieldname().empty()) {
    _internal_set_fieldname(from._internal_fieldname());
  }
  if (!from._internal_perdescriptionchn().empty()) {
    _internal_set_perdescriptionchn(from._internal_perdescriptionchn());
  }
  if (!from._internal_perdescriptioneng().empty()) {
    _internal_set_perdescriptioneng(from._internal_perdescriptioneng());
  }
  if (!from._internal_fieldunit().empty()) {
    _internal_set_fieldunit(from._internal_fieldunit());
  }
  if (!from._internal_operand1().empty()) {
    _internal_set_operand1(from._internal_operand1());
  }
  if (!from._internal_operand2().empty()) {
    _internal_set_operand2(from._internal_operand2());
  }
  if (!from._internal_alarmdeschn().empty()) {
    _internal_set_alarmdeschn(from._internal_alarmdeschn());
  }
  if (!from._internal_alarmdeseng().empty()) {
    _internal_set_alarmdeseng(from._internal_alarmdeseng());
  }
  if (from._internal_has_createtime()) {
    _internal_mutable_createtime()->::PROTOBUF_NAMESPACE_ID::Timestamp::MergeFrom(from._internal_createtime());
  }
  if (from._internal_id() != 0) {
    _internal_set_id(from._internal_id());
  }
  if (from._internal_perid() != 0) {
    _internal_set_perid(from._internal_perid());
  }
  if (from._internal_fieldtype() != 0) {
    _internal_set_fieldtype(from._internal_fieldtype());
  }
  if (from._internal_operator1() != 0) {
    _internal_set_operator1(from._internal_operator1());
  }
  if (from._internal_relation() != 0) {
    _internal_set_relation(from._internal_relation());
  }
  if (from._internal_operator2() != 0) {
    _internal_set_operator2(from._internal_operator2());
  }
  if (from._internal_ismon() != 0) {
    _internal_set_ismon(from._internal_ismon());
  }
  if (from._internal_peralarmlevel() != 0) {
    _internal_set_peralarmlevel(from._internal_peralarmlevel());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

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

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

void PerAttri::InternalSwap(PerAttri* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &datacatlog_, lhs_arena,
      &other->datacatlog_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &fieldname_, lhs_arena,
      &other->fieldname_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &perdescriptionchn_, lhs_arena,
      &other->perdescriptionchn_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &perdescriptioneng_, lhs_arena,
      &other->perdescriptioneng_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &fieldunit_, lhs_arena,
      &other->fieldunit_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &operand1_, lhs_arena,
      &other->operand1_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &operand2_, lhs_arena,
      &other->operand2_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &alarmdeschn_, lhs_arena,
      &other->alarmdeschn_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &alarmdeseng_, lhs_arena,
      &other->alarmdeseng_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(PerAttri, peralarmlevel_)
      + sizeof(PerAttri::peralarmlevel_)
      - PROTOBUF_FIELD_OFFSET(PerAttri, createtime_)>(
          reinterpret_cast<char*>(&createtime_),
          reinterpret_cast<char*>(&other->createtime_));
}

::PROTOBUF_NAMESPACE_ID::Metadata PerAttri::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_OAM_5fdatastruct_2eproto_getter, &descriptor_table_OAM_5fdatastruct_2eproto_once,
      file_level_metadata_OAM_5fdatastruct_2eproto[4]);
}

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

class CurrAlarm::_Internal {
 public:
  static const ::PROTOBUF_NAMESPACE_ID::Timestamp& reporttime(const CurrAlarm* msg);
};

const ::PROTOBUF_NAMESPACE_ID::Timestamp&
CurrAlarm::_Internal::reporttime(const CurrAlarm* msg) {
  return *msg->reporttime_;
}
void CurrAlarm::clear_reporttime() {
  if (GetArenaForAllocation() == nullptr && reporttime_ != nullptr) {
    delete reporttime_;
  }
  reporttime_ = nullptr;
}
CurrAlarm::CurrAlarm(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:CurrAlarm)
}
CurrAlarm::CurrAlarm(const CurrAlarm& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  alarmdescriptionchn_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    alarmdescriptionchn_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_alarmdescriptionchn().empty()) {
    alarmdescriptionchn_.Set(from._internal_alarmdescriptionchn(), 
      GetArenaForAllocation());
  }
  alarmdescriptioneng_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    alarmdescriptioneng_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_alarmdescriptioneng().empty()) {
    alarmdescriptioneng_.Set(from._internal_alarmdescriptioneng(), 
      GetArenaForAllocation());
  }
  if (from._internal_has_reporttime()) {
    reporttime_ = new ::PROTOBUF_NAMESPACE_ID::Timestamp(*from.reporttime_);
  } else {
    reporttime_ = nullptr;
  }
  ::memcpy(&id_, &from.id_,
    static_cast<size_t>(reinterpret_cast<char*>(&alarmlevel_) -
    reinterpret_cast<char*>(&id_)) + sizeof(alarmlevel_));
  // @@protoc_insertion_point(copy_constructor:CurrAlarm)
}

inline void CurrAlarm::SharedCtor() {
alarmdescriptionchn_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  alarmdescriptionchn_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
alarmdescriptioneng_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  alarmdescriptioneng_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&reporttime_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&alarmlevel_) -
    reinterpret_cast<char*>(&reporttime_)) + sizeof(alarmlevel_));
}

CurrAlarm::~CurrAlarm() {
  // @@protoc_insertion_point(destructor:CurrAlarm)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void CurrAlarm::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  alarmdescriptionchn_.Destroy();
  alarmdescriptioneng_.Destroy();
  if (this != internal_default_instance()) delete reporttime_;
}

void CurrAlarm::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void CurrAlarm::Clear() {
// @@protoc_insertion_point(message_clear_start:CurrAlarm)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  alarmdescriptionchn_.ClearToEmpty();
  alarmdescriptioneng_.ClearToEmpty();
  if (GetArenaForAllocation() == nullptr && reporttime_ != nullptr) {
    delete reporttime_;
  }
  reporttime_ = nullptr;
  ::memset(&id_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&alarmlevel_) -
      reinterpret_cast<char*>(&id_)) + sizeof(alarmlevel_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CurrAlarm::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // uint32 Id = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // uint32 AlarmID = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          alarmid_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // uint32 StationID = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          stationid_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // uint32 DeviceID = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
          deviceid_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .Level AlarmLevel = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 40)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_alarmlevel(static_cast<::Level>(val));
        } else
          goto handle_unusual;
        continue;
      // string AlarmDescriptionCHN = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          auto str = _internal_mutable_alarmdescriptionchn();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "CurrAlarm.AlarmDescriptionCHN"));
        } else
          goto handle_unusual;
        continue;
      // string AlarmDescriptionENG = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
          auto str = _internal_mutable_alarmdescriptioneng();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "CurrAlarm.AlarmDescriptionENG"));
        } else
          goto handle_unusual;
        continue;
      // .google.protobuf.Timestamp ReportTime = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 66)) {
          ptr = ctx->ParseMessage(_internal_mutable_reporttime(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* CurrAlarm::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:CurrAlarm)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // uint32 Id = 1;
  if (this->_internal_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(1, this->_internal_id(), target);
  }

  // uint32 AlarmID = 2;
  if (this->_internal_alarmid() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(2, this->_internal_alarmid(), target);
  }

  // uint32 StationID = 3;
  if (this->_internal_stationid() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(3, this->_internal_stationid(), target);
  }

  // uint32 DeviceID = 4;
  if (this->_internal_deviceid() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(4, this->_internal_deviceid(), target);
  }

  // .Level AlarmLevel = 5;
  if (this->_internal_alarmlevel() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
      5, this->_internal_alarmlevel(), target);
  }

  // string AlarmDescriptionCHN = 6;
  if (!this->_internal_alarmdescriptionchn().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_alarmdescriptionchn().data(), static_cast<int>(this->_internal_alarmdescriptionchn().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "CurrAlarm.AlarmDescriptionCHN");
    target = stream->WriteStringMaybeAliased(
        6, this->_internal_alarmdescriptionchn(), target);
  }

  // string AlarmDescriptionENG = 7;
  if (!this->_internal_alarmdescriptioneng().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_alarmdescriptioneng().data(), static_cast<int>(this->_internal_alarmdescriptioneng().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "CurrAlarm.AlarmDescriptionENG");
    target = stream->WriteStringMaybeAliased(
        7, this->_internal_alarmdescriptioneng(), target);
  }

  // .google.protobuf.Timestamp ReportTime = 8;
  if (this->_internal_has_reporttime()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(8, _Internal::reporttime(this),
        _Internal::reporttime(this).GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:CurrAlarm)
  return target;
}

size_t CurrAlarm::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:CurrAlarm)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string AlarmDescriptionCHN = 6;
  if (!this->_internal_alarmdescriptionchn().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_alarmdescriptionchn());
  }

  // string AlarmDescriptionENG = 7;
  if (!this->_internal_alarmdescriptioneng().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_alarmdescriptioneng());
  }

  // .google.protobuf.Timestamp ReportTime = 8;
  if (this->_internal_has_reporttime()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *reporttime_);
  }

  // uint32 Id = 1;
  if (this->_internal_id() != 0) {
    total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_id());
  }

  // uint32 AlarmID = 2;
  if (this->_internal_alarmid() != 0) {
    total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_alarmid());
  }

  // uint32 StationID = 3;
  if (this->_internal_stationid() != 0) {
    total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_stationid());
  }

  // uint32 DeviceID = 4;
  if (this->_internal_deviceid() != 0) {
    total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_deviceid());
  }

  // .Level AlarmLevel = 5;
  if (this->_internal_alarmlevel() != 0) {
    total_size += 1 +
      ::_pbi::WireFormatLite::EnumSize(this->_internal_alarmlevel());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CurrAlarm::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    CurrAlarm::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CurrAlarm::GetClassData() const { return &_class_data_; }

void CurrAlarm::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<CurrAlarm *>(to)->MergeFrom(
      static_cast<const CurrAlarm &>(from));
}


void CurrAlarm::MergeFrom(const CurrAlarm& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:CurrAlarm)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_alarmdescriptionchn().empty()) {
    _internal_set_alarmdescriptionchn(from._internal_alarmdescriptionchn());
  }
  if (!from._internal_alarmdescriptioneng().empty()) {
    _internal_set_alarmdescriptioneng(from._internal_alarmdescriptioneng());
  }
  if (from._internal_has_reporttime()) {
    _internal_mutable_reporttime()->::PROTOBUF_NAMESPACE_ID::Timestamp::MergeFrom(from._internal_reporttime());
  }
  if (from._internal_id() != 0) {
    _internal_set_id(from._internal_id());
  }
  if (from._internal_alarmid() != 0) {
    _internal_set_alarmid(from._internal_alarmid());
  }
  if (from._internal_stationid() != 0) {
    _internal_set_stationid(from._internal_stationid());
  }
  if (from._internal_deviceid() != 0) {
    _internal_set_deviceid(from._internal_deviceid());
  }
  if (from._internal_alarmlevel() != 0) {
    _internal_set_alarmlevel(from._internal_alarmlevel());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

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

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

void CurrAlarm::InternalSwap(CurrAlarm* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &alarmdescriptionchn_, lhs_arena,
      &other->alarmdescriptionchn_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &alarmdescriptioneng_, lhs_arena,
      &other->alarmdescriptioneng_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(CurrAlarm, alarmlevel_)
      + sizeof(CurrAlarm::alarmlevel_)
      - PROTOBUF_FIELD_OFFSET(CurrAlarm, reporttime_)>(
          reinterpret_cast<char*>(&reporttime_),
          reinterpret_cast<char*>(&other->reporttime_));
}

::PROTOBUF_NAMESPACE_ID::Metadata CurrAlarm::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_OAM_5fdatastruct_2eproto_getter, &descriptor_table_OAM_5fdatastruct_2eproto_once,
      file_level_metadata_OAM_5fdatastruct_2eproto[5]);
}

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

class HisAlarm::_Internal {
 public:
  static const ::PROTOBUF_NAMESPACE_ID::Timestamp& starttime(const HisAlarm* msg);
  static const ::PROTOBUF_NAMESPACE_ID::Timestamp& endtime(const HisAlarm* msg);
};

const ::PROTOBUF_NAMESPACE_ID::Timestamp&
HisAlarm::_Internal::starttime(const HisAlarm* msg) {
  return *msg->starttime_;
}
const ::PROTOBUF_NAMESPACE_ID::Timestamp&
HisAlarm::_Internal::endtime(const HisAlarm* msg) {
  return *msg->endtime_;
}
void HisAlarm::clear_starttime() {
  if (GetArenaForAllocation() == nullptr && starttime_ != nullptr) {
    delete starttime_;
  }
  starttime_ = nullptr;
}
void HisAlarm::clear_endtime() {
  if (GetArenaForAllocation() == nullptr && endtime_ != nullptr) {
    delete endtime_;
  }
  endtime_ = nullptr;
}
HisAlarm::HisAlarm(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:HisAlarm)
}
HisAlarm::HisAlarm(const HisAlarm& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  alarmdescriptionchn_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    alarmdescriptionchn_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_alarmdescriptionchn().empty()) {
    alarmdescriptionchn_.Set(from._internal_alarmdescriptionchn(), 
      GetArenaForAllocation());
  }
  alarmdescriptioneng_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    alarmdescriptioneng_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_alarmdescriptioneng().empty()) {
    alarmdescriptioneng_.Set(from._internal_alarmdescriptioneng(), 
      GetArenaForAllocation());
  }
  if (from._internal_has_starttime()) {
    starttime_ = new ::PROTOBUF_NAMESPACE_ID::Timestamp(*from.starttime_);
  } else {
    starttime_ = nullptr;
  }
  if (from._internal_has_endtime()) {
    endtime_ = new ::PROTOBUF_NAMESPACE_ID::Timestamp(*from.endtime_);
  } else {
    endtime_ = nullptr;
  }
  ::memcpy(&id_, &from.id_,
    static_cast<size_t>(reinterpret_cast<char*>(&alarmlevel_) -
    reinterpret_cast<char*>(&id_)) + sizeof(alarmlevel_));
  // @@protoc_insertion_point(copy_constructor:HisAlarm)
}

inline void HisAlarm::SharedCtor() {
alarmdescriptionchn_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  alarmdescriptionchn_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
alarmdescriptioneng_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  alarmdescriptioneng_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&starttime_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&alarmlevel_) -
    reinterpret_cast<char*>(&starttime_)) + sizeof(alarmlevel_));
}

HisAlarm::~HisAlarm() {
  // @@protoc_insertion_point(destructor:HisAlarm)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void HisAlarm::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  alarmdescriptionchn_.Destroy();
  alarmdescriptioneng_.Destroy();
  if (this != internal_default_instance()) delete starttime_;
  if (this != internal_default_instance()) delete endtime_;
}

void HisAlarm::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void HisAlarm::Clear() {
// @@protoc_insertion_point(message_clear_start:HisAlarm)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  alarmdescriptionchn_.ClearToEmpty();
  alarmdescriptioneng_.ClearToEmpty();
  if (GetArenaForAllocation() == nullptr && starttime_ != nullptr) {
    delete starttime_;
  }
  starttime_ = nullptr;
  if (GetArenaForAllocation() == nullptr && endtime_ != nullptr) {
    delete endtime_;
  }
  endtime_ = nullptr;
  ::memset(&id_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&alarmlevel_) -
      reinterpret_cast<char*>(&id_)) + sizeof(alarmlevel_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* HisAlarm::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // uint32 Id = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // uint32 AlarmID = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          alarmid_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // uint32 StationID = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          stationid_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // uint32 DeviceID = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
          deviceid_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .Level AlarmLevel = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 40)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_alarmlevel(static_cast<::Level>(val));
        } else
          goto handle_unusual;
        continue;
      // string AlarmDescriptionCHN = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          auto str = _internal_mutable_alarmdescriptionchn();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "HisAlarm.AlarmDescriptionCHN"));
        } else
          goto handle_unusual;
        continue;
      // string AlarmDescriptionENG = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
          auto str = _internal_mutable_alarmdescriptioneng();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "HisAlarm.AlarmDescriptionENG"));
        } else
          goto handle_unusual;
        continue;
      // .google.protobuf.Timestamp StartTime = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 66)) {
          ptr = ctx->ParseMessage(_internal_mutable_starttime(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .google.protobuf.Timestamp EndTime = 9;
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 74)) {
          ptr = ctx->ParseMessage(_internal_mutable_endtime(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* HisAlarm::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:HisAlarm)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // uint32 Id = 1;
  if (this->_internal_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(1, this->_internal_id(), target);
  }

  // uint32 AlarmID = 2;
  if (this->_internal_alarmid() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(2, this->_internal_alarmid(), target);
  }

  // uint32 StationID = 3;
  if (this->_internal_stationid() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(3, this->_internal_stationid(), target);
  }

  // uint32 DeviceID = 4;
  if (this->_internal_deviceid() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(4, this->_internal_deviceid(), target);
  }

  // .Level AlarmLevel = 5;
  if (this->_internal_alarmlevel() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
      5, this->_internal_alarmlevel(), target);
  }

  // string AlarmDescriptionCHN = 6;
  if (!this->_internal_alarmdescriptionchn().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_alarmdescriptionchn().data(), static_cast<int>(this->_internal_alarmdescriptionchn().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "HisAlarm.AlarmDescriptionCHN");
    target = stream->WriteStringMaybeAliased(
        6, this->_internal_alarmdescriptionchn(), target);
  }

  // string AlarmDescriptionENG = 7;
  if (!this->_internal_alarmdescriptioneng().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_alarmdescriptioneng().data(), static_cast<int>(this->_internal_alarmdescriptioneng().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "HisAlarm.AlarmDescriptionENG");
    target = stream->WriteStringMaybeAliased(
        7, this->_internal_alarmdescriptioneng(), target);
  }

  // .google.protobuf.Timestamp StartTime = 8;
  if (this->_internal_has_starttime()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(8, _Internal::starttime(this),
        _Internal::starttime(this).GetCachedSize(), target, stream);
  }

  // .google.protobuf.Timestamp EndTime = 9;
  if (this->_internal_has_endtime()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(9, _Internal::endtime(this),
        _Internal::endtime(this).GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:HisAlarm)
  return target;
}

size_t HisAlarm::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:HisAlarm)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string AlarmDescriptionCHN = 6;
  if (!this->_internal_alarmdescriptionchn().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_alarmdescriptionchn());
  }

  // string AlarmDescriptionENG = 7;
  if (!this->_internal_alarmdescriptioneng().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_alarmdescriptioneng());
  }

  // .google.protobuf.Timestamp StartTime = 8;
  if (this->_internal_has_starttime()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *starttime_);
  }

  // .google.protobuf.Timestamp EndTime = 9;
  if (this->_internal_has_endtime()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *endtime_);
  }

  // uint32 Id = 1;
  if (this->_internal_id() != 0) {
    total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_id());
  }

  // uint32 AlarmID = 2;
  if (this->_internal_alarmid() != 0) {
    total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_alarmid());
  }

  // uint32 StationID = 3;
  if (this->_internal_stationid() != 0) {
    total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_stationid());
  }

  // uint32 DeviceID = 4;
  if (this->_internal_deviceid() != 0) {
    total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_deviceid());
  }

  // .Level AlarmLevel = 5;
  if (this->_internal_alarmlevel() != 0) {
    total_size += 1 +
      ::_pbi::WireFormatLite::EnumSize(this->_internal_alarmlevel());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData HisAlarm::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    HisAlarm::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*HisAlarm::GetClassData() const { return &_class_data_; }

void HisAlarm::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<HisAlarm *>(to)->MergeFrom(
      static_cast<const HisAlarm &>(from));
}


void HisAlarm::MergeFrom(const HisAlarm& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:HisAlarm)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_alarmdescriptionchn().empty()) {
    _internal_set_alarmdescriptionchn(from._internal_alarmdescriptionchn());
  }
  if (!from._internal_alarmdescriptioneng().empty()) {
    _internal_set_alarmdescriptioneng(from._internal_alarmdescriptioneng());
  }
  if (from._internal_has_starttime()) {
    _internal_mutable_starttime()->::PROTOBUF_NAMESPACE_ID::Timestamp::MergeFrom(from._internal_starttime());
  }
  if (from._internal_has_endtime()) {
    _internal_mutable_endtime()->::PROTOBUF_NAMESPACE_ID::Timestamp::MergeFrom(from._internal_endtime());
  }
  if (from._internal_id() != 0) {
    _internal_set_id(from._internal_id());
  }
  if (from._internal_alarmid() != 0) {
    _internal_set_alarmid(from._internal_alarmid());
  }
  if (from._internal_stationid() != 0) {
    _internal_set_stationid(from._internal_stationid());
  }
  if (from._internal_deviceid() != 0) {
    _internal_set_deviceid(from._internal_deviceid());
  }
  if (from._internal_alarmlevel() != 0) {
    _internal_set_alarmlevel(from._internal_alarmlevel());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

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

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

void HisAlarm::InternalSwap(HisAlarm* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &alarmdescriptionchn_, lhs_arena,
      &other->alarmdescriptionchn_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &alarmdescriptioneng_, lhs_arena,
      &other->alarmdescriptioneng_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(HisAlarm, alarmlevel_)
      + sizeof(HisAlarm::alarmlevel_)
      - PROTOBUF_FIELD_OFFSET(HisAlarm, starttime_)>(
          reinterpret_cast<char*>(&starttime_),
          reinterpret_cast<char*>(&other->starttime_));
}

::PROTOBUF_NAMESPACE_ID::Metadata HisAlarm::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_OAM_5fdatastruct_2eproto_getter, &descriptor_table_OAM_5fdatastruct_2eproto_once,
      file_level_metadata_OAM_5fdatastruct_2eproto[6]);
}

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

class SysStatus::_Internal {
 public:
  static const ::PROTOBUF_NAMESPACE_ID::Timestamp& reporttime(const SysStatus* msg);
};

const ::PROTOBUF_NAMESPACE_ID::Timestamp&
SysStatus::_Internal::reporttime(const SysStatus* msg) {
  return *msg->reporttime_;
}
void SysStatus::clear_reporttime() {
  if (GetArenaForAllocation() == nullptr && reporttime_ != nullptr) {
    delete reporttime_;
  }
  reporttime_ = nullptr;
}
SysStatus::SysStatus(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:SysStatus)
}
SysStatus::SysStatus(const SysStatus& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_reporttime()) {
    reporttime_ = new ::PROTOBUF_NAMESPACE_ID::Timestamp(*from.reporttime_);
  } else {
    reporttime_ = nullptr;
  }
  ::memcpy(&stationid_, &from.stationid_,
    static_cast<size_t>(reinterpret_cast<char*>(&status_) -
    reinterpret_cast<char*>(&stationid_)) + sizeof(status_));
  // @@protoc_insertion_point(copy_constructor:SysStatus)
}

inline void SysStatus::SharedCtor() {
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&reporttime_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&status_) -
    reinterpret_cast<char*>(&reporttime_)) + sizeof(status_));
}

SysStatus::~SysStatus() {
  // @@protoc_insertion_point(destructor:SysStatus)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SysStatus::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  if (this != internal_default_instance()) delete reporttime_;
}

void SysStatus::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void SysStatus::Clear() {
// @@protoc_insertion_point(message_clear_start:SysStatus)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArenaForAllocation() == nullptr && reporttime_ != nullptr) {
    delete reporttime_;
  }
  reporttime_ = nullptr;
  ::memset(&stationid_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&status_) -
      reinterpret_cast<char*>(&stationid_)) + sizeof(status_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SysStatus::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // uint32 StationID = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          stationid_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // uint32 DeviceID = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          deviceid_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .Devistatus Status = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_status(static_cast<::Devistatus>(val));
        } else
          goto handle_unusual;
        continue;
      // .google.protobuf.Timestamp ReportTime = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          ptr = ctx->ParseMessage(_internal_mutable_reporttime(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SysStatus::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:SysStatus)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // uint32 StationID = 1;
  if (this->_internal_stationid() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(1, this->_internal_stationid(), target);
  }

  // uint32 DeviceID = 2;
  if (this->_internal_deviceid() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(2, this->_internal_deviceid(), target);
  }

  // .Devistatus Status = 3;
  if (this->_internal_status() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
      3, this->_internal_status(), target);
  }

  // .google.protobuf.Timestamp ReportTime = 4;
  if (this->_internal_has_reporttime()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(4, _Internal::reporttime(this),
        _Internal::reporttime(this).GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:SysStatus)
  return target;
}

size_t SysStatus::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:SysStatus)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // .google.protobuf.Timestamp ReportTime = 4;
  if (this->_internal_has_reporttime()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *reporttime_);
  }

  // uint32 StationID = 1;
  if (this->_internal_stationid() != 0) {
    total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_stationid());
  }

  // uint32 DeviceID = 2;
  if (this->_internal_deviceid() != 0) {
    total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_deviceid());
  }

  // .Devistatus Status = 3;
  if (this->_internal_status() != 0) {
    total_size += 1 +
      ::_pbi::WireFormatLite::EnumSize(this->_internal_status());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SysStatus::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    SysStatus::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SysStatus::GetClassData() const { return &_class_data_; }

void SysStatus::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<SysStatus *>(to)->MergeFrom(
      static_cast<const SysStatus &>(from));
}


void SysStatus::MergeFrom(const SysStatus& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:SysStatus)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (from._internal_has_reporttime()) {
    _internal_mutable_reporttime()->::PROTOBUF_NAMESPACE_ID::Timestamp::MergeFrom(from._internal_reporttime());
  }
  if (from._internal_stationid() != 0) {
    _internal_set_stationid(from._internal_stationid());
  }
  if (from._internal_deviceid() != 0) {
    _internal_set_deviceid(from._internal_deviceid());
  }
  if (from._internal_status() != 0) {
    _internal_set_status(from._internal_status());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

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

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

void SysStatus::InternalSwap(SysStatus* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SysStatus, status_)
      + sizeof(SysStatus::status_)
      - PROTOBUF_FIELD_OFFSET(SysStatus, reporttime_)>(
          reinterpret_cast<char*>(&reporttime_),
          reinterpret_cast<char*>(&other->reporttime_));
}

::PROTOBUF_NAMESPACE_ID::Metadata SysStatus::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_OAM_5fdatastruct_2eproto_getter, &descriptor_table_OAM_5fdatastruct_2eproto_once,
      file_level_metadata_OAM_5fdatastruct_2eproto[7]);
}

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

class Log::_Internal {
 public:
  static const ::PROTOBUF_NAMESPACE_ID::Timestamp& reporttime(const Log* msg);
};

const ::PROTOBUF_NAMESPACE_ID::Timestamp&
Log::_Internal::reporttime(const Log* msg) {
  return *msg->reporttime_;
}
void Log::clear_reporttime() {
  if (GetArenaForAllocation() == nullptr && reporttime_ != nullptr) {
    delete reporttime_;
  }
  reporttime_ = nullptr;
}
Log::Log(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:Log)
}
Log::Log(const Log& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  loginfochn_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    loginfochn_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_loginfochn().empty()) {
    loginfochn_.Set(from._internal_loginfochn(), 
      GetArenaForAllocation());
  }
  loginfoeng_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    loginfoeng_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_loginfoeng().empty()) {
    loginfoeng_.Set(from._internal_loginfoeng(), 
      GetArenaForAllocation());
  }
  manipunator_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    manipunator_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_manipunator().empty()) {
    manipunator_.Set(from._internal_manipunator(), 
      GetArenaForAllocation());
  }
  if (from._internal_has_reporttime()) {
    reporttime_ = new ::PROTOBUF_NAMESPACE_ID::Timestamp(*from.reporttime_);
  } else {
    reporttime_ = nullptr;
  }
  ::memcpy(&stationid_, &from.stationid_,
    static_cast<size_t>(reinterpret_cast<char*>(&loglevel_) -
    reinterpret_cast<char*>(&stationid_)) + sizeof(loglevel_));
  // @@protoc_insertion_point(copy_constructor:Log)
}

inline void Log::SharedCtor() {
loginfochn_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  loginfochn_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
loginfoeng_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  loginfoeng_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
manipunator_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  manipunator_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&reporttime_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&loglevel_) -
    reinterpret_cast<char*>(&reporttime_)) + sizeof(loglevel_));
}

Log::~Log() {
  // @@protoc_insertion_point(destructor:Log)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void Log::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  loginfochn_.Destroy();
  loginfoeng_.Destroy();
  manipunator_.Destroy();
  if (this != internal_default_instance()) delete reporttime_;
}

void Log::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void Log::Clear() {
// @@protoc_insertion_point(message_clear_start:Log)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  loginfochn_.ClearToEmpty();
  loginfoeng_.ClearToEmpty();
  manipunator_.ClearToEmpty();
  if (GetArenaForAllocation() == nullptr && reporttime_ != nullptr) {
    delete reporttime_;
  }
  reporttime_ = nullptr;
  ::memset(&stationid_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&loglevel_) -
      reinterpret_cast<char*>(&stationid_)) + sizeof(loglevel_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Log::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // uint32 StationID = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          stationid_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // uint32 DeviceID = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          deviceid_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .LogLevel Loglevel = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_loglevel(static_cast<::LogLevel>(val));
        } else
          goto handle_unusual;
        continue;
      // string LogInfoCHN = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_loginfochn();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "Log.LogInfoCHN"));
        } else
          goto handle_unusual;
        continue;
      // string LogInfoENG = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          auto str = _internal_mutable_loginfoeng();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "Log.LogInfoENG"));
        } else
          goto handle_unusual;
        continue;
      // string Manipunator = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          auto str = _internal_mutable_manipunator();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "Log.Manipunator"));
        } else
          goto handle_unusual;
        continue;
      // .google.protobuf.Timestamp ReportTime = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
          ptr = ctx->ParseMessage(_internal_mutable_reporttime(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* Log::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Log)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // uint32 StationID = 1;
  if (this->_internal_stationid() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(1, this->_internal_stationid(), target);
  }

  // uint32 DeviceID = 2;
  if (this->_internal_deviceid() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(2, this->_internal_deviceid(), target);
  }

  // .LogLevel Loglevel = 3;
  if (this->_internal_loglevel() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
      3, this->_internal_loglevel(), target);
  }

  // string LogInfoCHN = 4;
  if (!this->_internal_loginfochn().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_loginfochn().data(), static_cast<int>(this->_internal_loginfochn().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Log.LogInfoCHN");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_loginfochn(), target);
  }

  // string LogInfoENG = 5;
  if (!this->_internal_loginfoeng().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_loginfoeng().data(), static_cast<int>(this->_internal_loginfoeng().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Log.LogInfoENG");
    target = stream->WriteStringMaybeAliased(
        5, this->_internal_loginfoeng(), target);
  }

  // string Manipunator = 6;
  if (!this->_internal_manipunator().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_manipunator().data(), static_cast<int>(this->_internal_manipunator().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Log.Manipunator");
    target = stream->WriteStringMaybeAliased(
        6, this->_internal_manipunator(), target);
  }

  // .google.protobuf.Timestamp ReportTime = 7;
  if (this->_internal_has_reporttime()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(7, _Internal::reporttime(this),
        _Internal::reporttime(this).GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Log)
  return target;
}

size_t Log::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Log)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string LogInfoCHN = 4;
  if (!this->_internal_loginfochn().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_loginfochn());
  }

  // string LogInfoENG = 5;
  if (!this->_internal_loginfoeng().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_loginfoeng());
  }

  // string Manipunator = 6;
  if (!this->_internal_manipunator().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_manipunator());
  }

  // .google.protobuf.Timestamp ReportTime = 7;
  if (this->_internal_has_reporttime()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *reporttime_);
  }

  // uint32 StationID = 1;
  if (this->_internal_stationid() != 0) {
    total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_stationid());
  }

  // uint32 DeviceID = 2;
  if (this->_internal_deviceid() != 0) {
    total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_deviceid());
  }

  // .LogLevel Loglevel = 3;
  if (this->_internal_loglevel() != 0) {
    total_size += 1 +
      ::_pbi::WireFormatLite::EnumSize(this->_internal_loglevel());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Log::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    Log::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Log::GetClassData() const { return &_class_data_; }

void Log::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<Log *>(to)->MergeFrom(
      static_cast<const Log &>(from));
}


void Log::MergeFrom(const Log& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Log)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_loginfochn().empty()) {
    _internal_set_loginfochn(from._internal_loginfochn());
  }
  if (!from._internal_loginfoeng().empty()) {
    _internal_set_loginfoeng(from._internal_loginfoeng());
  }
  if (!from._internal_manipunator().empty()) {
    _internal_set_manipunator(from._internal_manipunator());
  }
  if (from._internal_has_reporttime()) {
    _internal_mutable_reporttime()->::PROTOBUF_NAMESPACE_ID::Timestamp::MergeFrom(from._internal_reporttime());
  }
  if (from._internal_stationid() != 0) {
    _internal_set_stationid(from._internal_stationid());
  }
  if (from._internal_deviceid() != 0) {
    _internal_set_deviceid(from._internal_deviceid());
  }
  if (from._internal_loglevel() != 0) {
    _internal_set_loglevel(from._internal_loglevel());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

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

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

void Log::InternalSwap(Log* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &loginfochn_, lhs_arena,
      &other->loginfochn_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &loginfoeng_, lhs_arena,
      &other->loginfoeng_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &manipunator_, lhs_arena,
      &other->manipunator_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Log, loglevel_)
      + sizeof(Log::loglevel_)
      - PROTOBUF_FIELD_OFFSET(Log, reporttime_)>(
          reinterpret_cast<char*>(&reporttime_),
          reinterpret_cast<char*>(&other->reporttime_));
}

::PROTOBUF_NAMESPACE_ID::Metadata Log::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_OAM_5fdatastruct_2eproto_getter, &descriptor_table_OAM_5fdatastruct_2eproto_once,
      file_level_metadata_OAM_5fdatastruct_2eproto[8]);
}

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

class PerInfo::_Internal {
 public:
  static const ::PROTOBUF_NAMESPACE_ID::Timestamp& updatetime(const PerInfo* msg);
};

const ::PROTOBUF_NAMESPACE_ID::Timestamp&
PerInfo::_Internal::updatetime(const PerInfo* msg) {
  return *msg->updatetime_;
}
void PerInfo::clear_updatetime() {
  if (GetArenaForAllocation() == nullptr && updatetime_ != nullptr) {
    delete updatetime_;
  }
  updatetime_ = nullptr;
}
PerInfo::PerInfo(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:PerInfo)
}
PerInfo::PerInfo(const PerInfo& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  datacatlog_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    datacatlog_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_datacatlog().empty()) {
    datacatlog_.Set(from._internal_datacatlog(), 
      GetArenaForAllocation());
  }
  fieldname_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    fieldname_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_fieldname().empty()) {
    fieldname_.Set(from._internal_fieldname(), 
      GetArenaForAllocation());
  }
  fieldvalue_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    fieldvalue_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_fieldvalue().empty()) {
    fieldvalue_.Set(from._internal_fieldvalue(), 
      GetArenaForAllocation());
  }
  perdescriptionchn_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    perdescriptionchn_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_perdescriptionchn().empty()) {
    perdescriptionchn_.Set(from._internal_perdescriptionchn(), 
      GetArenaForAllocation());
  }
  perdescriptioneng_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    perdescriptioneng_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_perdescriptioneng().empty()) {
    perdescriptioneng_.Set(from._internal_perdescriptioneng(), 
      GetArenaForAllocation());
  }
  if (from._internal_has_updatetime()) {
    updatetime_ = new ::PROTOBUF_NAMESPACE_ID::Timestamp(*from.updatetime_);
  } else {
    updatetime_ = nullptr;
  }
  ::memcpy(&id_, &from.id_,
    static_cast<size_t>(reinterpret_cast<char*>(&deviceid_) -
    reinterpret_cast<char*>(&id_)) + sizeof(deviceid_));
  // @@protoc_insertion_point(copy_constructor:PerInfo)
}

inline void PerInfo::SharedCtor() {
datacatlog_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  datacatlog_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
fieldname_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  fieldname_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
fieldvalue_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  fieldvalue_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
perdescriptionchn_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  perdescriptionchn_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
perdescriptioneng_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  perdescriptioneng_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&updatetime_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&deviceid_) -
    reinterpret_cast<char*>(&updatetime_)) + sizeof(deviceid_));
}

PerInfo::~PerInfo() {
  // @@protoc_insertion_point(destructor:PerInfo)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void PerInfo::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  datacatlog_.Destroy();
  fieldname_.Destroy();
  fieldvalue_.Destroy();
  perdescriptionchn_.Destroy();
  perdescriptioneng_.Destroy();
  if (this != internal_default_instance()) delete updatetime_;
}

void PerInfo::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void PerInfo::Clear() {
// @@protoc_insertion_point(message_clear_start:PerInfo)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  datacatlog_.ClearToEmpty();
  fieldname_.ClearToEmpty();
  fieldvalue_.ClearToEmpty();
  perdescriptionchn_.ClearToEmpty();
  perdescriptioneng_.ClearToEmpty();
  if (GetArenaForAllocation() == nullptr && updatetime_ != nullptr) {
    delete updatetime_;
  }
  updatetime_ = nullptr;
  ::memset(&id_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&deviceid_) -
      reinterpret_cast<char*>(&id_)) + sizeof(deviceid_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* PerInfo::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // uint32 Id = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // uint32 PerID = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          perid_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // uint32 StationID = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          stationid_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // uint32 DeviceID = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
          deviceid_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string DataCatlog = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          auto str = _internal_mutable_datacatlog();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "PerInfo.DataCatlog"));
        } else
          goto handle_unusual;
        continue;
      // string FieldName = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          auto str = _internal_mutable_fieldname();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "PerInfo.FieldName"));
        } else
          goto handle_unusual;
        continue;
      // string FieldValue = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
          auto str = _internal_mutable_fieldvalue();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "PerInfo.FieldValue"));
        } else
          goto handle_unusual;
        continue;
      // string PerDescriptionCHN = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 66)) {
          auto str = _internal_mutable_perdescriptionchn();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "PerInfo.PerDescriptionCHN"));
        } else
          goto handle_unusual;
        continue;
      // string PerDescriptionENG = 9;
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 74)) {
          auto str = _internal_mutable_perdescriptioneng();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "PerInfo.PerDescriptionENG"));
        } else
          goto handle_unusual;
        continue;
      // .google.protobuf.Timestamp UpdateTime = 10;
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 82)) {
          ptr = ctx->ParseMessage(_internal_mutable_updatetime(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* PerInfo::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:PerInfo)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // uint32 Id = 1;
  if (this->_internal_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(1, this->_internal_id(), target);
  }

  // uint32 PerID = 2;
  if (this->_internal_perid() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(2, this->_internal_perid(), target);
  }

  // uint32 StationID = 3;
  if (this->_internal_stationid() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(3, this->_internal_stationid(), target);
  }

  // uint32 DeviceID = 4;
  if (this->_internal_deviceid() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(4, this->_internal_deviceid(), target);
  }

  // string DataCatlog = 5;
  if (!this->_internal_datacatlog().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_datacatlog().data(), static_cast<int>(this->_internal_datacatlog().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "PerInfo.DataCatlog");
    target = stream->WriteStringMaybeAliased(
        5, this->_internal_datacatlog(), target);
  }

  // string FieldName = 6;
  if (!this->_internal_fieldname().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_fieldname().data(), static_cast<int>(this->_internal_fieldname().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "PerInfo.FieldName");
    target = stream->WriteStringMaybeAliased(
        6, this->_internal_fieldname(), target);
  }

  // string FieldValue = 7;
  if (!this->_internal_fieldvalue().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_fieldvalue().data(), static_cast<int>(this->_internal_fieldvalue().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "PerInfo.FieldValue");
    target = stream->WriteStringMaybeAliased(
        7, this->_internal_fieldvalue(), target);
  }

  // string PerDescriptionCHN = 8;
  if (!this->_internal_perdescriptionchn().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_perdescriptionchn().data(), static_cast<int>(this->_internal_perdescriptionchn().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "PerInfo.PerDescriptionCHN");
    target = stream->WriteStringMaybeAliased(
        8, this->_internal_perdescriptionchn(), target);
  }

  // string PerDescriptionENG = 9;
  if (!this->_internal_perdescriptioneng().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_perdescriptioneng().data(), static_cast<int>(this->_internal_perdescriptioneng().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "PerInfo.PerDescriptionENG");
    target = stream->WriteStringMaybeAliased(
        9, this->_internal_perdescriptioneng(), target);
  }

  // .google.protobuf.Timestamp UpdateTime = 10;
  if (this->_internal_has_updatetime()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(10, _Internal::updatetime(this),
        _Internal::updatetime(this).GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:PerInfo)
  return target;
}

size_t PerInfo::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:PerInfo)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string DataCatlog = 5;
  if (!this->_internal_datacatlog().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_datacatlog());
  }

  // string FieldName = 6;
  if (!this->_internal_fieldname().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_fieldname());
  }

  // string FieldValue = 7;
  if (!this->_internal_fieldvalue().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_fieldvalue());
  }

  // string PerDescriptionCHN = 8;
  if (!this->_internal_perdescriptionchn().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_perdescriptionchn());
  }

  // string PerDescriptionENG = 9;
  if (!this->_internal_perdescriptioneng().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_perdescriptioneng());
  }

  // .google.protobuf.Timestamp UpdateTime = 10;
  if (this->_internal_has_updatetime()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *updatetime_);
  }

  // uint32 Id = 1;
  if (this->_internal_id() != 0) {
    total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_id());
  }

  // uint32 PerID = 2;
  if (this->_internal_perid() != 0) {
    total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_perid());
  }

  // uint32 StationID = 3;
  if (this->_internal_stationid() != 0) {
    total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_stationid());
  }

  // uint32 DeviceID = 4;
  if (this->_internal_deviceid() != 0) {
    total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_deviceid());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData PerInfo::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    PerInfo::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*PerInfo::GetClassData() const { return &_class_data_; }

void PerInfo::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<PerInfo *>(to)->MergeFrom(
      static_cast<const PerInfo &>(from));
}


void PerInfo::MergeFrom(const PerInfo& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:PerInfo)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_datacatlog().empty()) {
    _internal_set_datacatlog(from._internal_datacatlog());
  }
  if (!from._internal_fieldname().empty()) {
    _internal_set_fieldname(from._internal_fieldname());
  }
  if (!from._internal_fieldvalue().empty()) {
    _internal_set_fieldvalue(from._internal_fieldvalue());
  }
  if (!from._internal_perdescriptionchn().empty()) {
    _internal_set_perdescriptionchn(from._internal_perdescriptionchn());
  }
  if (!from._internal_perdescriptioneng().empty()) {
    _internal_set_perdescriptioneng(from._internal_perdescriptioneng());
  }
  if (from._internal_has_updatetime()) {
    _internal_mutable_updatetime()->::PROTOBUF_NAMESPACE_ID::Timestamp::MergeFrom(from._internal_updatetime());
  }
  if (from._internal_id() != 0) {
    _internal_set_id(from._internal_id());
  }
  if (from._internal_perid() != 0) {
    _internal_set_perid(from._internal_perid());
  }
  if (from._internal_stationid() != 0) {
    _internal_set_stationid(from._internal_stationid());
  }
  if (from._internal_deviceid() != 0) {
    _internal_set_deviceid(from._internal_deviceid());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

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

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

void PerInfo::InternalSwap(PerInfo* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &datacatlog_, lhs_arena,
      &other->datacatlog_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &fieldname_, lhs_arena,
      &other->fieldname_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &fieldvalue_, lhs_arena,
      &other->fieldvalue_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &perdescriptionchn_, lhs_arena,
      &other->perdescriptionchn_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &perdescriptioneng_, lhs_arena,
      &other->perdescriptioneng_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(PerInfo, deviceid_)
      + sizeof(PerInfo::deviceid_)
      - PROTOBUF_FIELD_OFFSET(PerInfo, updatetime_)>(
          reinterpret_cast<char*>(&updatetime_),
          reinterpret_cast<char*>(&other->updatetime_));
}

::PROTOBUF_NAMESPACE_ID::Metadata PerInfo::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_OAM_5fdatastruct_2eproto_getter, &descriptor_table_OAM_5fdatastruct_2eproto_once,
      file_level_metadata_OAM_5fdatastruct_2eproto[9]);
}

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

class PerRequire::_Internal {
 public:
};

PerRequire::PerRequire(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:PerRequire)
}
PerRequire::PerRequire(const PerRequire& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  datacatlog_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    datacatlog_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_datacatlog().empty()) {
    datacatlog_.Set(from._internal_datacatlog(), 
      GetArenaForAllocation());
  }
  fieldname_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    fieldname_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_fieldname().empty()) {
    fieldname_.Set(from._internal_fieldname(), 
      GetArenaForAllocation());
  }
  ismon_ = from.ismon_;
  // @@protoc_insertion_point(copy_constructor:PerRequire)
}

inline void PerRequire::SharedCtor() {
datacatlog_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  datacatlog_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
fieldname_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  fieldname_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
ismon_ = 0u;
}

PerRequire::~PerRequire() {
  // @@protoc_insertion_point(destructor:PerRequire)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void PerRequire::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  datacatlog_.Destroy();
  fieldname_.Destroy();
}

void PerRequire::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void PerRequire::Clear() {
// @@protoc_insertion_point(message_clear_start:PerRequire)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  datacatlog_.ClearToEmpty();
  fieldname_.ClearToEmpty();
  ismon_ = 0u;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* PerRequire::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string DataCatlog = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_datacatlog();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "PerRequire.DataCatlog"));
        } else
          goto handle_unusual;
        continue;
      // string FieldName = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_fieldname();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "PerRequire.FieldName"));
        } else
          goto handle_unusual;
        continue;
      // uint32 IsMon = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          ismon_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* PerRequire::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:PerRequire)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string DataCatlog = 1;
  if (!this->_internal_datacatlog().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_datacatlog().data(), static_cast<int>(this->_internal_datacatlog().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "PerRequire.DataCatlog");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_datacatlog(), target);
  }

  // string FieldName = 2;
  if (!this->_internal_fieldname().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_fieldname().data(), static_cast<int>(this->_internal_fieldname().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "PerRequire.FieldName");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_fieldname(), target);
  }

  // uint32 IsMon = 3;
  if (this->_internal_ismon() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(3, this->_internal_ismon(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:PerRequire)
  return target;
}

size_t PerRequire::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:PerRequire)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string DataCatlog = 1;
  if (!this->_internal_datacatlog().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_datacatlog());
  }

  // string FieldName = 2;
  if (!this->_internal_fieldname().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_fieldname());
  }

  // uint32 IsMon = 3;
  if (this->_internal_ismon() != 0) {
    total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_ismon());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData PerRequire::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    PerRequire::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*PerRequire::GetClassData() const { return &_class_data_; }

void PerRequire::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<PerRequire *>(to)->MergeFrom(
      static_cast<const PerRequire &>(from));
}


void PerRequire::MergeFrom(const PerRequire& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:PerRequire)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_datacatlog().empty()) {
    _internal_set_datacatlog(from._internal_datacatlog());
  }
  if (!from._internal_fieldname().empty()) {
    _internal_set_fieldname(from._internal_fieldname());
  }
  if (from._internal_ismon() != 0) {
    _internal_set_ismon(from._internal_ismon());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

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

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

void PerRequire::InternalSwap(PerRequire* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &datacatlog_, lhs_arena,
      &other->datacatlog_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &fieldname_, lhs_arena,
      &other->fieldname_, rhs_arena
  );
  swap(ismon_, other->ismon_);
}

::PROTOBUF_NAMESPACE_ID::Metadata PerRequire::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_OAM_5fdatastruct_2eproto_getter, &descriptor_table_OAM_5fdatastruct_2eproto_once,
      file_level_metadata_OAM_5fdatastruct_2eproto[10]);
}

// @@protoc_insertion_point(namespace_scope)
PROTOBUF_NAMESPACE_OPEN
template<> PROTOBUF_NOINLINE ::DeviceRet*
Arena::CreateMaybeMessage< ::DeviceRet >(Arena* arena) {
  return Arena::CreateMessageInternal< ::DeviceRet >(arena);
}
template<> PROTOBUF_NOINLINE ::Respond*
Arena::CreateMaybeMessage< ::Respond >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Respond >(arena);
}
template<> PROTOBUF_NOINLINE ::StationDevID*
Arena::CreateMaybeMessage< ::StationDevID >(Arena* arena) {
  return Arena::CreateMessageInternal< ::StationDevID >(arena);
}
template<> PROTOBUF_NOINLINE ::AlarmAttri*
Arena::CreateMaybeMessage< ::AlarmAttri >(Arena* arena) {
  return Arena::CreateMessageInternal< ::AlarmAttri >(arena);
}
template<> PROTOBUF_NOINLINE ::PerAttri*
Arena::CreateMaybeMessage< ::PerAttri >(Arena* arena) {
  return Arena::CreateMessageInternal< ::PerAttri >(arena);
}
template<> PROTOBUF_NOINLINE ::CurrAlarm*
Arena::CreateMaybeMessage< ::CurrAlarm >(Arena* arena) {
  return Arena::CreateMessageInternal< ::CurrAlarm >(arena);
}
template<> PROTOBUF_NOINLINE ::HisAlarm*
Arena::CreateMaybeMessage< ::HisAlarm >(Arena* arena) {
  return Arena::CreateMessageInternal< ::HisAlarm >(arena);
}
template<> PROTOBUF_NOINLINE ::SysStatus*
Arena::CreateMaybeMessage< ::SysStatus >(Arena* arena) {
  return Arena::CreateMessageInternal< ::SysStatus >(arena);
}
template<> PROTOBUF_NOINLINE ::Log*
Arena::CreateMaybeMessage< ::Log >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Log >(arena);
}
template<> PROTOBUF_NOINLINE ::PerInfo*
Arena::CreateMaybeMessage< ::PerInfo >(Arena* arena) {
  return Arena::CreateMessageInternal< ::PerInfo >(arena);
}
template<> PROTOBUF_NOINLINE ::PerRequire*
Arena::CreateMaybeMessage< ::PerRequire >(Arena* arena) {
  return Arena::CreateMessageInternal< ::PerRequire >(arena);
}
PROTOBUF_NAMESPACE_CLOSE

// @@protoc_insertion_point(global_scope)
#include <google/protobuf/port_undef.inc>
