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

#include "proto/topicData/topicDataRecord/topicDataRecord.pb.h"

#include <algorithm>

#include <google/protobuf/stubs/common.h>
#include <google/protobuf/stubs/port.h>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/wire_format_lite_inl.h>
#include <google/protobuf/descriptor.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/reflection_ops.h>
#include <google/protobuf/wire_format.h>
// This is a temporary google only hack
#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
#include "third_party/protobuf/version.h"
#endif
// @@protoc_insertion_point(includes)

namespace protobuf_proto_2fsessions_2fsession_2eproto {
extern PROTOBUF_INTERNAL_EXPORT_protobuf_proto_2fsessions_2fsession_2eproto ::google::protobuf::internal::SCCInfo<2> scc_info_Session;
}  // namespace protobuf_proto_2fsessions_2fsession_2eproto
namespace protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fcolor_2eproto {
extern PROTOBUF_INTERNAL_EXPORT_protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fcolor_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Color;
}  // namespace protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fcolor_2eproto
namespace protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fimage_2eproto {
extern PROTOBUF_INTERNAL_EXPORT_protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fimage_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Image2D;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fimage_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_Image2DList;
}  // namespace protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fimage_2eproto
namespace protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fkeyEvent_2eproto {
extern PROTOBUF_INTERNAL_EXPORT_protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fkeyEvent_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_KeyEvent;
}  // namespace protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fkeyEvent_2eproto
namespace protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2flists_2eproto {
extern PROTOBUF_INTERNAL_EXPORT_protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2flists_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_BoolList;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2flists_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_DoubleList;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2flists_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_FloatList;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2flists_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Int32List;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2flists_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_StringList;
}  // namespace protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2flists_2eproto
namespace protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fmatrix3x2_2eproto {
extern PROTOBUF_INTERNAL_EXPORT_protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fmatrix3x2_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Matrix3x2;
}  // namespace protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fmatrix3x2_2eproto
namespace protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fmatrix4x4_2eproto {
extern PROTOBUF_INTERNAL_EXPORT_protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fmatrix4x4_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Matrix4x4;
}  // namespace protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fmatrix4x4_2eproto
namespace protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fmouseEvent_2eproto {
extern PROTOBUF_INTERNAL_EXPORT_protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fmouseEvent_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_MouseEvent;
}  // namespace protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fmouseEvent_2eproto
namespace protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fmyoEvent_2eproto {
extern PROTOBUF_INTERNAL_EXPORT_protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fmyoEvent_2eproto ::google::protobuf::internal::SCCInfo<3> scc_info_MyoEvent;
}  // namespace protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fmyoEvent_2eproto
namespace protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fobject2d_2eproto {
extern PROTOBUF_INTERNAL_EXPORT_protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fobject2d_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_Object2DList;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fobject2d_2eproto ::google::protobuf::internal::SCCInfo<2> scc_info_Object2D;
}  // namespace protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fobject2d_2eproto
namespace protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fobject3d_2eproto {
extern PROTOBUF_INTERNAL_EXPORT_protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fobject3d_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_Object3DList;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fobject3d_2eproto ::google::protobuf::internal::SCCInfo<2> scc_info_Object3D;
}  // namespace protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fobject3d_2eproto
namespace protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fpose2d_2eproto {
extern PROTOBUF_INTERNAL_EXPORT_protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fpose2d_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_Pose2D;
}  // namespace protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fpose2d_2eproto
namespace protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fpose3d_2eproto {
extern PROTOBUF_INTERNAL_EXPORT_protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fpose3d_2eproto ::google::protobuf::internal::SCCInfo<2> scc_info_Pose3D;
}  // namespace protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fpose3d_2eproto
namespace protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fquaternion_2eproto {
extern PROTOBUF_INTERNAL_EXPORT_protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fquaternion_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Quaternion;
}  // namespace protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fquaternion_2eproto
namespace protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2ftouchEvent_2eproto {
extern PROTOBUF_INTERNAL_EXPORT_protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2ftouchEvent_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_TouchEvent;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2ftouchEvent_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_TouchEventList;
}  // namespace protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2ftouchEvent_2eproto
namespace protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fvector2_2eproto {
extern PROTOBUF_INTERNAL_EXPORT_protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fvector2_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Vector2;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fvector2_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_Vector2List;
}  // namespace protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fvector2_2eproto
namespace protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fvector3_2eproto {
extern PROTOBUF_INTERNAL_EXPORT_protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fvector3_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Vector3;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fvector3_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_Vector3List;
}  // namespace protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fvector3_2eproto
namespace protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fvector4_2eproto {
extern PROTOBUF_INTERNAL_EXPORT_protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fvector4_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Vector4;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fvector4_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_Vector4List;
}  // namespace protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fvector4_2eproto
namespace protobuf_proto_2ftopicData_2ftopicDataRecord_2ftimestamp_2eproto {
extern PROTOBUF_INTERNAL_EXPORT_protobuf_proto_2ftopicData_2ftopicDataRecord_2ftimestamp_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Timestamp;
}  // namespace protobuf_proto_2ftopicData_2ftopicDataRecord_2ftimestamp_2eproto
namespace protobuf_proto_2ftopicData_2ftopicDataRecord_2ftopicDataRecord_2eproto {
extern PROTOBUF_INTERNAL_EXPORT_protobuf_proto_2ftopicData_2ftopicDataRecord_2ftopicDataRecord_2eproto ::google::protobuf::internal::SCCInfo<30> scc_info_TopicDataRecord;
}  // namespace protobuf_proto_2ftopicData_2ftopicDataRecord_2ftopicDataRecord_2eproto
namespace ubii {
namespace topicData {
class TopicDataRecordDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<TopicDataRecord>
      _instance;
  double double__;
  bool bool__;
  ::google::protobuf::internal::ArenaStringPtr string_;
  ::google::protobuf::int32 int32_;
  float float__;
  const ::ubii::dataStructure::Vector2* vector2_;
  const ::ubii::dataStructure::Vector2List* vector2_list_;
  const ::ubii::dataStructure::Vector3* vector3_;
  const ::ubii::dataStructure::Vector3List* vector3_list_;
  const ::ubii::dataStructure::Vector4* vector4_;
  const ::ubii::dataStructure::Vector4List* vector4_list_;
  const ::ubii::dataStructure::Quaternion* quaternion_;
  const ::ubii::dataStructure::Quaternion* quaternion_list_;
  const ::ubii::dataStructure::Matrix3x2* matrix3x2_;
  const ::ubii::dataStructure::Matrix4x4* matrix4x4_;
  const ::ubii::dataStructure::Color* color_;
  const ::ubii::dataStructure::TouchEvent* touch_event_;
  const ::ubii::dataStructure::TouchEventList* touch_event_list_;
  const ::ubii::dataStructure::KeyEvent* key_event_;
  const ::ubii::dataStructure::MouseEvent* mouse_event_;
  const ::ubii::dataStructure::MyoEvent* myo_event_;
  const ::ubii::dataStructure::Pose2D* pose2d_;
  const ::ubii::dataStructure::Pose3D* pose3d_;
  const ::ubii::dataStructure::Object2D* object2d_;
  const ::ubii::dataStructure::Object3D* object3d_;
  const ::ubii::dataStructure::Object2DList* object2d_list_;
  const ::ubii::dataStructure::Object3DList* object3d_list_;
  const ::ubii::dataStructure::Int32List* int32_list_;
  const ::ubii::dataStructure::FloatList* float_list_;
  const ::ubii::dataStructure::DoubleList* double_list_;
  const ::ubii::dataStructure::StringList* string_list_;
  const ::ubii::dataStructure::BoolList* bool_list_;
  const ::ubii::dataStructure::Image2D* image2d_;
  const ::ubii::dataStructure::Image2DList* image2d_list_;
  const ::ubii::sessions::Session* session_;
} _TopicDataRecord_default_instance_;
class TopicDataRecordListDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<TopicDataRecordList>
      _instance;
} _TopicDataRecordList_default_instance_;
}  // namespace topicData
}  // namespace ubii
namespace protobuf_proto_2ftopicData_2ftopicDataRecord_2ftopicDataRecord_2eproto {
static void InitDefaultsTopicDataRecord() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::ubii::topicData::_TopicDataRecord_default_instance_;
    new (ptr) ::ubii::topicData::TopicDataRecord();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::ubii::topicData::TopicDataRecord::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<30> scc_info_TopicDataRecord =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 30, InitDefaultsTopicDataRecord}, {
      &protobuf_proto_2ftopicData_2ftopicDataRecord_2ftimestamp_2eproto::scc_info_Timestamp.base,
      &protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fvector2_2eproto::scc_info_Vector2.base,
      &protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fvector2_2eproto::scc_info_Vector2List.base,
      &protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fvector3_2eproto::scc_info_Vector3.base,
      &protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fvector3_2eproto::scc_info_Vector3List.base,
      &protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fvector4_2eproto::scc_info_Vector4.base,
      &protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fvector4_2eproto::scc_info_Vector4List.base,
      &protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fquaternion_2eproto::scc_info_Quaternion.base,
      &protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fmatrix3x2_2eproto::scc_info_Matrix3x2.base,
      &protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fmatrix4x4_2eproto::scc_info_Matrix4x4.base,
      &protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fcolor_2eproto::scc_info_Color.base,
      &protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2ftouchEvent_2eproto::scc_info_TouchEvent.base,
      &protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2ftouchEvent_2eproto::scc_info_TouchEventList.base,
      &protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fkeyEvent_2eproto::scc_info_KeyEvent.base,
      &protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fmouseEvent_2eproto::scc_info_MouseEvent.base,
      &protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fmyoEvent_2eproto::scc_info_MyoEvent.base,
      &protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fpose2d_2eproto::scc_info_Pose2D.base,
      &protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fpose3d_2eproto::scc_info_Pose3D.base,
      &protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fobject2d_2eproto::scc_info_Object2D.base,
      &protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fobject3d_2eproto::scc_info_Object3D.base,
      &protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fobject2d_2eproto::scc_info_Object2DList.base,
      &protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fobject3d_2eproto::scc_info_Object3DList.base,
      &protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2flists_2eproto::scc_info_Int32List.base,
      &protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2flists_2eproto::scc_info_FloatList.base,
      &protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2flists_2eproto::scc_info_DoubleList.base,
      &protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2flists_2eproto::scc_info_StringList.base,
      &protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2flists_2eproto::scc_info_BoolList.base,
      &protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fimage_2eproto::scc_info_Image2D.base,
      &protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fimage_2eproto::scc_info_Image2DList.base,
      &protobuf_proto_2fsessions_2fsession_2eproto::scc_info_Session.base,}};

static void InitDefaultsTopicDataRecordList() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::ubii::topicData::_TopicDataRecordList_default_instance_;
    new (ptr) ::ubii::topicData::TopicDataRecordList();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::ubii::topicData::TopicDataRecordList::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<1> scc_info_TopicDataRecordList =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsTopicDataRecordList}, {
      &protobuf_proto_2ftopicData_2ftopicDataRecord_2ftopicDataRecord_2eproto::scc_info_TopicDataRecord.base,}};

void InitDefaults() {
  ::google::protobuf::internal::InitSCC(&scc_info_TopicDataRecord.base);
  ::google::protobuf::internal::InitSCC(&scc_info_TopicDataRecordList.base);
}

::google::protobuf::Metadata file_level_metadata[2];

const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ubii::topicData::TopicDataRecord, _internal_metadata_),
  ~0u,  // no _extensions_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ubii::topicData::TopicDataRecord, _oneof_case_[0]),
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ubii::topicData::TopicDataRecord, topic_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ubii::topicData::TopicDataRecord, timestamp_),
  offsetof(::ubii::topicData::TopicDataRecordDefaultTypeInternal, double__),
  offsetof(::ubii::topicData::TopicDataRecordDefaultTypeInternal, bool__),
  offsetof(::ubii::topicData::TopicDataRecordDefaultTypeInternal, string_),
  offsetof(::ubii::topicData::TopicDataRecordDefaultTypeInternal, int32_),
  offsetof(::ubii::topicData::TopicDataRecordDefaultTypeInternal, float__),
  offsetof(::ubii::topicData::TopicDataRecordDefaultTypeInternal, vector2_),
  offsetof(::ubii::topicData::TopicDataRecordDefaultTypeInternal, vector2_list_),
  offsetof(::ubii::topicData::TopicDataRecordDefaultTypeInternal, vector3_),
  offsetof(::ubii::topicData::TopicDataRecordDefaultTypeInternal, vector3_list_),
  offsetof(::ubii::topicData::TopicDataRecordDefaultTypeInternal, vector4_),
  offsetof(::ubii::topicData::TopicDataRecordDefaultTypeInternal, vector4_list_),
  offsetof(::ubii::topicData::TopicDataRecordDefaultTypeInternal, quaternion_),
  offsetof(::ubii::topicData::TopicDataRecordDefaultTypeInternal, quaternion_list_),
  offsetof(::ubii::topicData::TopicDataRecordDefaultTypeInternal, matrix3x2_),
  offsetof(::ubii::topicData::TopicDataRecordDefaultTypeInternal, matrix4x4_),
  offsetof(::ubii::topicData::TopicDataRecordDefaultTypeInternal, color_),
  offsetof(::ubii::topicData::TopicDataRecordDefaultTypeInternal, touch_event_),
  offsetof(::ubii::topicData::TopicDataRecordDefaultTypeInternal, touch_event_list_),
  offsetof(::ubii::topicData::TopicDataRecordDefaultTypeInternal, key_event_),
  offsetof(::ubii::topicData::TopicDataRecordDefaultTypeInternal, mouse_event_),
  offsetof(::ubii::topicData::TopicDataRecordDefaultTypeInternal, myo_event_),
  offsetof(::ubii::topicData::TopicDataRecordDefaultTypeInternal, pose2d_),
  offsetof(::ubii::topicData::TopicDataRecordDefaultTypeInternal, pose3d_),
  offsetof(::ubii::topicData::TopicDataRecordDefaultTypeInternal, object2d_),
  offsetof(::ubii::topicData::TopicDataRecordDefaultTypeInternal, object3d_),
  offsetof(::ubii::topicData::TopicDataRecordDefaultTypeInternal, object2d_list_),
  offsetof(::ubii::topicData::TopicDataRecordDefaultTypeInternal, object3d_list_),
  offsetof(::ubii::topicData::TopicDataRecordDefaultTypeInternal, int32_list_),
  offsetof(::ubii::topicData::TopicDataRecordDefaultTypeInternal, float_list_),
  offsetof(::ubii::topicData::TopicDataRecordDefaultTypeInternal, double_list_),
  offsetof(::ubii::topicData::TopicDataRecordDefaultTypeInternal, string_list_),
  offsetof(::ubii::topicData::TopicDataRecordDefaultTypeInternal, bool_list_),
  offsetof(::ubii::topicData::TopicDataRecordDefaultTypeInternal, image2d_),
  offsetof(::ubii::topicData::TopicDataRecordDefaultTypeInternal, image2d_list_),
  offsetof(::ubii::topicData::TopicDataRecordDefaultTypeInternal, session_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ubii::topicData::TopicDataRecord, type_),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ubii::topicData::TopicDataRecordList, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ubii::topicData::TopicDataRecordList, elements_),
};
static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
  { 0, -1, sizeof(::ubii::topicData::TopicDataRecord)},
  { 43, -1, sizeof(::ubii::topicData::TopicDataRecordList)},
};

static ::google::protobuf::Message const * const file_default_instances[] = {
  reinterpret_cast<const ::google::protobuf::Message*>(&::ubii::topicData::_TopicDataRecord_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::ubii::topicData::_TopicDataRecordList_default_instance_),
};

void protobuf_AssignDescriptors() {
  AddDescriptors();
  AssignDescriptors(
      "proto/topicData/topicDataRecord/topicDataRecord.proto", schemas, file_default_instances, TableStruct::offsets,
      file_level_metadata, NULL, NULL);
}

void protobuf_AssignDescriptorsOnce() {
  static ::google::protobuf::internal::once_flag once;
  ::google::protobuf::internal::call_once(once, protobuf_AssignDescriptors);
}

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

void AddDescriptorsImpl() {
  InitDefaults();
  static const char descriptor[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
      "\n5proto/topicData/topicDataRecord/topicD"
      "ataRecord.proto\022\016ubii.topicData\032/proto/t"
      "opicData/topicDataRecord/timestamp.proto"
      "\0329proto/topicData/topicDataRecord/dataSt"
      "ructure/lists.proto\032;proto/topicData/top"
      "icDataRecord/dataStructure/vector2.proto"
      "\032;proto/topicData/topicDataRecord/dataSt"
      "ructure/vector3.proto\032;proto/topicData/t"
      "opicDataRecord/dataStructure/vector4.pro"
      "to\032>proto/topicData/topicDataRecord/data"
      "Structure/quaternion.proto\032=proto/topicD"
      "ata/topicDataRecord/dataStructure/matrix"
      "3x2.proto\032=proto/topicData/topicDataReco"
      "rd/dataStructure/matrix4x4.proto\0329proto/"
      "topicData/topicDataRecord/dataStructure/"
      "color.proto\032>proto/topicData/topicDataRe"
      "cord/dataStructure/touchEvent.proto\032<pro"
      "to/topicData/topicDataRecord/dataStructu"
      "re/keyEvent.proto\032>proto/topicData/topic"
      "DataRecord/dataStructure/mouseEvent.prot"
      "o\032<proto/topicData/topicDataRecord/dataS"
      "tructure/myoEvent.proto\032:proto/topicData"
      "/topicDataRecord/dataStructure/pose2d.pr"
      "oto\032:proto/topicData/topicDataRecord/dat"
      "aStructure/pose3d.proto\032<proto/topicData"
      "/topicDataRecord/dataStructure/object2d."
      "proto\032<proto/topicData/topicDataRecord/d"
      "ataStructure/object3d.proto\0329proto/topic"
      "Data/topicDataRecord/dataStructure/image"
      ".proto\032\034proto/sessions/session.proto\032\'pr"
      "oto/processing/processingModule.proto\"\325\r"
      "\n\017TopicDataRecord\022\r\n\005topic\030\001 \001(\t\022,\n\ttime"
      "stamp\030\002 \001(\0132\031.ubii.topicData.Timestamp\022\020"
      "\n\006double\030\003 \001(\001H\000\022\016\n\004bool\030\004 \001(\010H\000\022\020\n\006stri"
      "ng\030\005 \001(\tH\000\022\017\n\005int32\030\027 \001(\005H\000\022\017\n\005float\030\030 \001"
      "(\002H\000\022.\n\007vector2\030\006 \001(\0132\033.ubii.dataStructu"
      "re.Vector2H\000\0227\n\014vector2_list\030# \001(\0132\037.ubi"
      "i.dataStructure.Vector2ListH\000\022.\n\007vector3"
      "\030\007 \001(\0132\033.ubii.dataStructure.Vector3H\000\0227\n"
      "\014vector3_list\030$ \001(\0132\037.ubii.dataStructure"
      ".Vector3ListH\000\022.\n\007vector4\030\010 \001(\0132\033.ubii.d"
      "ataStructure.Vector4H\000\0227\n\014vector4_list\030%"
      " \001(\0132\037.ubii.dataStructure.Vector4ListH\000\022"
      "4\n\nquaternion\030\t \001(\0132\036.ubii.dataStructure"
      ".QuaternionH\000\0229\n\017quaternion_list\030& \001(\0132\036"
      ".ubii.dataStructure.QuaternionH\000\0222\n\tmatr"
      "ix3x2\030\n \001(\0132\035.ubii.dataStructure.Matrix3"
      "x2H\000\0222\n\tmatrix4x4\030\013 \001(\0132\035.ubii.dataStruc"
      "ture.Matrix4x4H\000\022*\n\005color\030\014 \001(\0132\031.ubii.d"
      "ataStructure.ColorH\000\0225\n\013touch_event\030\r \001("
      "\0132\036.ubii.dataStructure.TouchEventH\000\022>\n\020t"
      "ouch_event_list\030\" \001(\0132\".ubii.dataStructu"
      "re.TouchEventListH\000\0221\n\tkey_event\030\016 \001(\0132\034"
      ".ubii.dataStructure.KeyEventH\000\0225\n\013mouse_"
      "event\030\017 \001(\0132\036.ubii.dataStructure.MouseEv"
      "entH\000\0221\n\tmyo_event\030\020 \001(\0132\034.ubii.dataStru"
      "cture.MyoEventH\000\022,\n\006pose2D\030\021 \001(\0132\032.ubii."
      "dataStructure.Pose2DH\000\022,\n\006pose3D\030\022 \001(\0132\032"
      ".ubii.dataStructure.Pose3DH\000\0220\n\010object2D"
      "\030\023 \001(\0132\034.ubii.dataStructure.Object2DH\000\0220"
      "\n\010object3D\030\024 \001(\0132\034.ubii.dataStructure.Ob"
      "ject3DH\000\0229\n\robject2D_list\030\025 \001(\0132 .ubii.d"
      "ataStructure.Object2DListH\000\0229\n\robject3D_"
      "list\030\026 \001(\0132 .ubii.dataStructure.Object3D"
      "ListH\000\0223\n\nint32_list\030\031 \001(\0132\035.ubii.dataSt"
      "ructure.Int32ListH\000\0223\n\nfloat_list\030\032 \001(\0132"
      "\035.ubii.dataStructure.FloatListH\000\0225\n\013doub"
      "le_list\030\033 \001(\0132\036.ubii.dataStructure.Doubl"
      "eListH\000\0225\n\013string_list\030\034 \001(\0132\036.ubii.data"
      "Structure.StringListH\000\0221\n\tbool_list\030\035 \001("
      "\0132\034.ubii.dataStructure.BoolListH\000\022.\n\007ima"
      "ge2D\030\036 \001(\0132\033.ubii.dataStructure.Image2DH"
      "\000\0227\n\014image2D_list\030\037 \001(\0132\037.ubii.dataStruc"
      "ture.Image2DListH\000\022)\n\007session\030  \001(\0132\026.ub"
      "ii.sessions.SessionH\000B\006\n\004type\"H\n\023TopicDa"
      "taRecordList\0221\n\010elements\030\001 \003(\0132\037.ubii.to"
      "picData.TopicDataRecordb\006proto3"
  };
  ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
      descriptor, 3071);
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
    "proto/topicData/topicDataRecord/topicDataRecord.proto", &protobuf_RegisterTypes);
  ::protobuf_proto_2ftopicData_2ftopicDataRecord_2ftimestamp_2eproto::AddDescriptors();
  ::protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2flists_2eproto::AddDescriptors();
  ::protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fvector2_2eproto::AddDescriptors();
  ::protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fvector3_2eproto::AddDescriptors();
  ::protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fvector4_2eproto::AddDescriptors();
  ::protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fquaternion_2eproto::AddDescriptors();
  ::protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fmatrix3x2_2eproto::AddDescriptors();
  ::protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fmatrix4x4_2eproto::AddDescriptors();
  ::protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fcolor_2eproto::AddDescriptors();
  ::protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2ftouchEvent_2eproto::AddDescriptors();
  ::protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fkeyEvent_2eproto::AddDescriptors();
  ::protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fmouseEvent_2eproto::AddDescriptors();
  ::protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fmyoEvent_2eproto::AddDescriptors();
  ::protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fpose2d_2eproto::AddDescriptors();
  ::protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fpose3d_2eproto::AddDescriptors();
  ::protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fobject2d_2eproto::AddDescriptors();
  ::protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fobject3d_2eproto::AddDescriptors();
  ::protobuf_proto_2ftopicData_2ftopicDataRecord_2fdataStructure_2fimage_2eproto::AddDescriptors();
  ::protobuf_proto_2fsessions_2fsession_2eproto::AddDescriptors();
  ::protobuf_proto_2fprocessing_2fprocessingModule_2eproto::AddDescriptors();
}

void AddDescriptors() {
  static ::google::protobuf::internal::once_flag once;
  ::google::protobuf::internal::call_once(once, AddDescriptorsImpl);
}
// Force AddDescriptors() to be called at dynamic initialization time.
struct StaticDescriptorInitializer {
  StaticDescriptorInitializer() {
    AddDescriptors();
  }
} static_descriptor_initializer;
}  // namespace protobuf_proto_2ftopicData_2ftopicDataRecord_2ftopicDataRecord_2eproto
namespace ubii {
namespace topicData {

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

void TopicDataRecord::InitAsDefaultInstance() {
  ::ubii::topicData::_TopicDataRecord_default_instance_._instance.get_mutable()->timestamp_ = const_cast< ::ubii::topicData::Timestamp*>(
      ::ubii::topicData::Timestamp::internal_default_instance());
  ::ubii::topicData::_TopicDataRecord_default_instance_.double__ = 0;
  ::ubii::topicData::_TopicDataRecord_default_instance_.bool__ = false;
  ::ubii::topicData::_TopicDataRecord_default_instance_.string_.UnsafeSetDefault(
      &::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::ubii::topicData::_TopicDataRecord_default_instance_.int32_ = 0;
  ::ubii::topicData::_TopicDataRecord_default_instance_.float__ = 0;
  ::ubii::topicData::_TopicDataRecord_default_instance_.vector2_ = const_cast< ::ubii::dataStructure::Vector2*>(
      ::ubii::dataStructure::Vector2::internal_default_instance());
  ::ubii::topicData::_TopicDataRecord_default_instance_.vector2_list_ = const_cast< ::ubii::dataStructure::Vector2List*>(
      ::ubii::dataStructure::Vector2List::internal_default_instance());
  ::ubii::topicData::_TopicDataRecord_default_instance_.vector3_ = const_cast< ::ubii::dataStructure::Vector3*>(
      ::ubii::dataStructure::Vector3::internal_default_instance());
  ::ubii::topicData::_TopicDataRecord_default_instance_.vector3_list_ = const_cast< ::ubii::dataStructure::Vector3List*>(
      ::ubii::dataStructure::Vector3List::internal_default_instance());
  ::ubii::topicData::_TopicDataRecord_default_instance_.vector4_ = const_cast< ::ubii::dataStructure::Vector4*>(
      ::ubii::dataStructure::Vector4::internal_default_instance());
  ::ubii::topicData::_TopicDataRecord_default_instance_.vector4_list_ = const_cast< ::ubii::dataStructure::Vector4List*>(
      ::ubii::dataStructure::Vector4List::internal_default_instance());
  ::ubii::topicData::_TopicDataRecord_default_instance_.quaternion_ = const_cast< ::ubii::dataStructure::Quaternion*>(
      ::ubii::dataStructure::Quaternion::internal_default_instance());
  ::ubii::topicData::_TopicDataRecord_default_instance_.quaternion_list_ = const_cast< ::ubii::dataStructure::Quaternion*>(
      ::ubii::dataStructure::Quaternion::internal_default_instance());
  ::ubii::topicData::_TopicDataRecord_default_instance_.matrix3x2_ = const_cast< ::ubii::dataStructure::Matrix3x2*>(
      ::ubii::dataStructure::Matrix3x2::internal_default_instance());
  ::ubii::topicData::_TopicDataRecord_default_instance_.matrix4x4_ = const_cast< ::ubii::dataStructure::Matrix4x4*>(
      ::ubii::dataStructure::Matrix4x4::internal_default_instance());
  ::ubii::topicData::_TopicDataRecord_default_instance_.color_ = const_cast< ::ubii::dataStructure::Color*>(
      ::ubii::dataStructure::Color::internal_default_instance());
  ::ubii::topicData::_TopicDataRecord_default_instance_.touch_event_ = const_cast< ::ubii::dataStructure::TouchEvent*>(
      ::ubii::dataStructure::TouchEvent::internal_default_instance());
  ::ubii::topicData::_TopicDataRecord_default_instance_.touch_event_list_ = const_cast< ::ubii::dataStructure::TouchEventList*>(
      ::ubii::dataStructure::TouchEventList::internal_default_instance());
  ::ubii::topicData::_TopicDataRecord_default_instance_.key_event_ = const_cast< ::ubii::dataStructure::KeyEvent*>(
      ::ubii::dataStructure::KeyEvent::internal_default_instance());
  ::ubii::topicData::_TopicDataRecord_default_instance_.mouse_event_ = const_cast< ::ubii::dataStructure::MouseEvent*>(
      ::ubii::dataStructure::MouseEvent::internal_default_instance());
  ::ubii::topicData::_TopicDataRecord_default_instance_.myo_event_ = const_cast< ::ubii::dataStructure::MyoEvent*>(
      ::ubii::dataStructure::MyoEvent::internal_default_instance());
  ::ubii::topicData::_TopicDataRecord_default_instance_.pose2d_ = const_cast< ::ubii::dataStructure::Pose2D*>(
      ::ubii::dataStructure::Pose2D::internal_default_instance());
  ::ubii::topicData::_TopicDataRecord_default_instance_.pose3d_ = const_cast< ::ubii::dataStructure::Pose3D*>(
      ::ubii::dataStructure::Pose3D::internal_default_instance());
  ::ubii::topicData::_TopicDataRecord_default_instance_.object2d_ = const_cast< ::ubii::dataStructure::Object2D*>(
      ::ubii::dataStructure::Object2D::internal_default_instance());
  ::ubii::topicData::_TopicDataRecord_default_instance_.object3d_ = const_cast< ::ubii::dataStructure::Object3D*>(
      ::ubii::dataStructure::Object3D::internal_default_instance());
  ::ubii::topicData::_TopicDataRecord_default_instance_.object2d_list_ = const_cast< ::ubii::dataStructure::Object2DList*>(
      ::ubii::dataStructure::Object2DList::internal_default_instance());
  ::ubii::topicData::_TopicDataRecord_default_instance_.object3d_list_ = const_cast< ::ubii::dataStructure::Object3DList*>(
      ::ubii::dataStructure::Object3DList::internal_default_instance());
  ::ubii::topicData::_TopicDataRecord_default_instance_.int32_list_ = const_cast< ::ubii::dataStructure::Int32List*>(
      ::ubii::dataStructure::Int32List::internal_default_instance());
  ::ubii::topicData::_TopicDataRecord_default_instance_.float_list_ = const_cast< ::ubii::dataStructure::FloatList*>(
      ::ubii::dataStructure::FloatList::internal_default_instance());
  ::ubii::topicData::_TopicDataRecord_default_instance_.double_list_ = const_cast< ::ubii::dataStructure::DoubleList*>(
      ::ubii::dataStructure::DoubleList::internal_default_instance());
  ::ubii::topicData::_TopicDataRecord_default_instance_.string_list_ = const_cast< ::ubii::dataStructure::StringList*>(
      ::ubii::dataStructure::StringList::internal_default_instance());
  ::ubii::topicData::_TopicDataRecord_default_instance_.bool_list_ = const_cast< ::ubii::dataStructure::BoolList*>(
      ::ubii::dataStructure::BoolList::internal_default_instance());
  ::ubii::topicData::_TopicDataRecord_default_instance_.image2d_ = const_cast< ::ubii::dataStructure::Image2D*>(
      ::ubii::dataStructure::Image2D::internal_default_instance());
  ::ubii::topicData::_TopicDataRecord_default_instance_.image2d_list_ = const_cast< ::ubii::dataStructure::Image2DList*>(
      ::ubii::dataStructure::Image2DList::internal_default_instance());
  ::ubii::topicData::_TopicDataRecord_default_instance_.session_ = const_cast< ::ubii::sessions::Session*>(
      ::ubii::sessions::Session::internal_default_instance());
}
void TopicDataRecord::clear_timestamp() {
  if (GetArenaNoVirtual() == NULL && timestamp_ != NULL) {
    delete timestamp_;
  }
  timestamp_ = NULL;
}
void TopicDataRecord::set_allocated_vector2(::ubii::dataStructure::Vector2* vector2) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  clear_type();
  if (vector2) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      vector2 = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, vector2, submessage_arena);
    }
    set_has_vector2();
    type_.vector2_ = vector2;
  }
  // @@protoc_insertion_point(field_set_allocated:ubii.topicData.TopicDataRecord.vector2)
}
void TopicDataRecord::clear_vector2() {
  if (has_vector2()) {
    delete type_.vector2_;
    clear_has_type();
  }
}
void TopicDataRecord::set_allocated_vector2_list(::ubii::dataStructure::Vector2List* vector2_list) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  clear_type();
  if (vector2_list) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      vector2_list = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, vector2_list, submessage_arena);
    }
    set_has_vector2_list();
    type_.vector2_list_ = vector2_list;
  }
  // @@protoc_insertion_point(field_set_allocated:ubii.topicData.TopicDataRecord.vector2_list)
}
void TopicDataRecord::clear_vector2_list() {
  if (has_vector2_list()) {
    delete type_.vector2_list_;
    clear_has_type();
  }
}
void TopicDataRecord::set_allocated_vector3(::ubii::dataStructure::Vector3* vector3) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  clear_type();
  if (vector3) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      vector3 = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, vector3, submessage_arena);
    }
    set_has_vector3();
    type_.vector3_ = vector3;
  }
  // @@protoc_insertion_point(field_set_allocated:ubii.topicData.TopicDataRecord.vector3)
}
void TopicDataRecord::clear_vector3() {
  if (has_vector3()) {
    delete type_.vector3_;
    clear_has_type();
  }
}
void TopicDataRecord::set_allocated_vector3_list(::ubii::dataStructure::Vector3List* vector3_list) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  clear_type();
  if (vector3_list) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      vector3_list = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, vector3_list, submessage_arena);
    }
    set_has_vector3_list();
    type_.vector3_list_ = vector3_list;
  }
  // @@protoc_insertion_point(field_set_allocated:ubii.topicData.TopicDataRecord.vector3_list)
}
void TopicDataRecord::clear_vector3_list() {
  if (has_vector3_list()) {
    delete type_.vector3_list_;
    clear_has_type();
  }
}
void TopicDataRecord::set_allocated_vector4(::ubii::dataStructure::Vector4* vector4) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  clear_type();
  if (vector4) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      vector4 = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, vector4, submessage_arena);
    }
    set_has_vector4();
    type_.vector4_ = vector4;
  }
  // @@protoc_insertion_point(field_set_allocated:ubii.topicData.TopicDataRecord.vector4)
}
void TopicDataRecord::clear_vector4() {
  if (has_vector4()) {
    delete type_.vector4_;
    clear_has_type();
  }
}
void TopicDataRecord::set_allocated_vector4_list(::ubii::dataStructure::Vector4List* vector4_list) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  clear_type();
  if (vector4_list) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      vector4_list = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, vector4_list, submessage_arena);
    }
    set_has_vector4_list();
    type_.vector4_list_ = vector4_list;
  }
  // @@protoc_insertion_point(field_set_allocated:ubii.topicData.TopicDataRecord.vector4_list)
}
void TopicDataRecord::clear_vector4_list() {
  if (has_vector4_list()) {
    delete type_.vector4_list_;
    clear_has_type();
  }
}
void TopicDataRecord::set_allocated_quaternion(::ubii::dataStructure::Quaternion* quaternion) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  clear_type();
  if (quaternion) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      quaternion = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, quaternion, submessage_arena);
    }
    set_has_quaternion();
    type_.quaternion_ = quaternion;
  }
  // @@protoc_insertion_point(field_set_allocated:ubii.topicData.TopicDataRecord.quaternion)
}
void TopicDataRecord::clear_quaternion() {
  if (has_quaternion()) {
    delete type_.quaternion_;
    clear_has_type();
  }
}
void TopicDataRecord::set_allocated_quaternion_list(::ubii::dataStructure::Quaternion* quaternion_list) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  clear_type();
  if (quaternion_list) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      quaternion_list = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, quaternion_list, submessage_arena);
    }
    set_has_quaternion_list();
    type_.quaternion_list_ = quaternion_list;
  }
  // @@protoc_insertion_point(field_set_allocated:ubii.topicData.TopicDataRecord.quaternion_list)
}
void TopicDataRecord::clear_quaternion_list() {
  if (has_quaternion_list()) {
    delete type_.quaternion_list_;
    clear_has_type();
  }
}
void TopicDataRecord::set_allocated_matrix3x2(::ubii::dataStructure::Matrix3x2* matrix3x2) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  clear_type();
  if (matrix3x2) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      matrix3x2 = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, matrix3x2, submessage_arena);
    }
    set_has_matrix3x2();
    type_.matrix3x2_ = matrix3x2;
  }
  // @@protoc_insertion_point(field_set_allocated:ubii.topicData.TopicDataRecord.matrix3x2)
}
void TopicDataRecord::clear_matrix3x2() {
  if (has_matrix3x2()) {
    delete type_.matrix3x2_;
    clear_has_type();
  }
}
void TopicDataRecord::set_allocated_matrix4x4(::ubii::dataStructure::Matrix4x4* matrix4x4) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  clear_type();
  if (matrix4x4) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      matrix4x4 = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, matrix4x4, submessage_arena);
    }
    set_has_matrix4x4();
    type_.matrix4x4_ = matrix4x4;
  }
  // @@protoc_insertion_point(field_set_allocated:ubii.topicData.TopicDataRecord.matrix4x4)
}
void TopicDataRecord::clear_matrix4x4() {
  if (has_matrix4x4()) {
    delete type_.matrix4x4_;
    clear_has_type();
  }
}
void TopicDataRecord::set_allocated_color(::ubii::dataStructure::Color* color) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  clear_type();
  if (color) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      color = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, color, submessage_arena);
    }
    set_has_color();
    type_.color_ = color;
  }
  // @@protoc_insertion_point(field_set_allocated:ubii.topicData.TopicDataRecord.color)
}
void TopicDataRecord::clear_color() {
  if (has_color()) {
    delete type_.color_;
    clear_has_type();
  }
}
void TopicDataRecord::set_allocated_touch_event(::ubii::dataStructure::TouchEvent* touch_event) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  clear_type();
  if (touch_event) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      touch_event = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, touch_event, submessage_arena);
    }
    set_has_touch_event();
    type_.touch_event_ = touch_event;
  }
  // @@protoc_insertion_point(field_set_allocated:ubii.topicData.TopicDataRecord.touch_event)
}
void TopicDataRecord::clear_touch_event() {
  if (has_touch_event()) {
    delete type_.touch_event_;
    clear_has_type();
  }
}
void TopicDataRecord::set_allocated_touch_event_list(::ubii::dataStructure::TouchEventList* touch_event_list) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  clear_type();
  if (touch_event_list) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      touch_event_list = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, touch_event_list, submessage_arena);
    }
    set_has_touch_event_list();
    type_.touch_event_list_ = touch_event_list;
  }
  // @@protoc_insertion_point(field_set_allocated:ubii.topicData.TopicDataRecord.touch_event_list)
}
void TopicDataRecord::clear_touch_event_list() {
  if (has_touch_event_list()) {
    delete type_.touch_event_list_;
    clear_has_type();
  }
}
void TopicDataRecord::set_allocated_key_event(::ubii::dataStructure::KeyEvent* key_event) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  clear_type();
  if (key_event) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      key_event = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, key_event, submessage_arena);
    }
    set_has_key_event();
    type_.key_event_ = key_event;
  }
  // @@protoc_insertion_point(field_set_allocated:ubii.topicData.TopicDataRecord.key_event)
}
void TopicDataRecord::clear_key_event() {
  if (has_key_event()) {
    delete type_.key_event_;
    clear_has_type();
  }
}
void TopicDataRecord::set_allocated_mouse_event(::ubii::dataStructure::MouseEvent* mouse_event) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  clear_type();
  if (mouse_event) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      mouse_event = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, mouse_event, submessage_arena);
    }
    set_has_mouse_event();
    type_.mouse_event_ = mouse_event;
  }
  // @@protoc_insertion_point(field_set_allocated:ubii.topicData.TopicDataRecord.mouse_event)
}
void TopicDataRecord::clear_mouse_event() {
  if (has_mouse_event()) {
    delete type_.mouse_event_;
    clear_has_type();
  }
}
void TopicDataRecord::set_allocated_myo_event(::ubii::dataStructure::MyoEvent* myo_event) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  clear_type();
  if (myo_event) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      myo_event = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, myo_event, submessage_arena);
    }
    set_has_myo_event();
    type_.myo_event_ = myo_event;
  }
  // @@protoc_insertion_point(field_set_allocated:ubii.topicData.TopicDataRecord.myo_event)
}
void TopicDataRecord::clear_myo_event() {
  if (has_myo_event()) {
    delete type_.myo_event_;
    clear_has_type();
  }
}
void TopicDataRecord::set_allocated_pose2d(::ubii::dataStructure::Pose2D* pose2d) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  clear_type();
  if (pose2d) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      pose2d = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, pose2d, submessage_arena);
    }
    set_has_pose2d();
    type_.pose2d_ = pose2d;
  }
  // @@protoc_insertion_point(field_set_allocated:ubii.topicData.TopicDataRecord.pose2D)
}
void TopicDataRecord::clear_pose2d() {
  if (has_pose2d()) {
    delete type_.pose2d_;
    clear_has_type();
  }
}
void TopicDataRecord::set_allocated_pose3d(::ubii::dataStructure::Pose3D* pose3d) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  clear_type();
  if (pose3d) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      pose3d = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, pose3d, submessage_arena);
    }
    set_has_pose3d();
    type_.pose3d_ = pose3d;
  }
  // @@protoc_insertion_point(field_set_allocated:ubii.topicData.TopicDataRecord.pose3D)
}
void TopicDataRecord::clear_pose3d() {
  if (has_pose3d()) {
    delete type_.pose3d_;
    clear_has_type();
  }
}
void TopicDataRecord::set_allocated_object2d(::ubii::dataStructure::Object2D* object2d) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  clear_type();
  if (object2d) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      object2d = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, object2d, submessage_arena);
    }
    set_has_object2d();
    type_.object2d_ = object2d;
  }
  // @@protoc_insertion_point(field_set_allocated:ubii.topicData.TopicDataRecord.object2D)
}
void TopicDataRecord::clear_object2d() {
  if (has_object2d()) {
    delete type_.object2d_;
    clear_has_type();
  }
}
void TopicDataRecord::set_allocated_object3d(::ubii::dataStructure::Object3D* object3d) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  clear_type();
  if (object3d) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      object3d = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, object3d, submessage_arena);
    }
    set_has_object3d();
    type_.object3d_ = object3d;
  }
  // @@protoc_insertion_point(field_set_allocated:ubii.topicData.TopicDataRecord.object3D)
}
void TopicDataRecord::clear_object3d() {
  if (has_object3d()) {
    delete type_.object3d_;
    clear_has_type();
  }
}
void TopicDataRecord::set_allocated_object2d_list(::ubii::dataStructure::Object2DList* object2d_list) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  clear_type();
  if (object2d_list) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      object2d_list = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, object2d_list, submessage_arena);
    }
    set_has_object2d_list();
    type_.object2d_list_ = object2d_list;
  }
  // @@protoc_insertion_point(field_set_allocated:ubii.topicData.TopicDataRecord.object2D_list)
}
void TopicDataRecord::clear_object2d_list() {
  if (has_object2d_list()) {
    delete type_.object2d_list_;
    clear_has_type();
  }
}
void TopicDataRecord::set_allocated_object3d_list(::ubii::dataStructure::Object3DList* object3d_list) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  clear_type();
  if (object3d_list) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      object3d_list = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, object3d_list, submessage_arena);
    }
    set_has_object3d_list();
    type_.object3d_list_ = object3d_list;
  }
  // @@protoc_insertion_point(field_set_allocated:ubii.topicData.TopicDataRecord.object3D_list)
}
void TopicDataRecord::clear_object3d_list() {
  if (has_object3d_list()) {
    delete type_.object3d_list_;
    clear_has_type();
  }
}
void TopicDataRecord::set_allocated_int32_list(::ubii::dataStructure::Int32List* int32_list) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  clear_type();
  if (int32_list) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      int32_list = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, int32_list, submessage_arena);
    }
    set_has_int32_list();
    type_.int32_list_ = int32_list;
  }
  // @@protoc_insertion_point(field_set_allocated:ubii.topicData.TopicDataRecord.int32_list)
}
void TopicDataRecord::clear_int32_list() {
  if (has_int32_list()) {
    delete type_.int32_list_;
    clear_has_type();
  }
}
void TopicDataRecord::set_allocated_float_list(::ubii::dataStructure::FloatList* float_list) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  clear_type();
  if (float_list) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      float_list = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, float_list, submessage_arena);
    }
    set_has_float_list();
    type_.float_list_ = float_list;
  }
  // @@protoc_insertion_point(field_set_allocated:ubii.topicData.TopicDataRecord.float_list)
}
void TopicDataRecord::clear_float_list() {
  if (has_float_list()) {
    delete type_.float_list_;
    clear_has_type();
  }
}
void TopicDataRecord::set_allocated_double_list(::ubii::dataStructure::DoubleList* double_list) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  clear_type();
  if (double_list) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      double_list = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, double_list, submessage_arena);
    }
    set_has_double_list();
    type_.double_list_ = double_list;
  }
  // @@protoc_insertion_point(field_set_allocated:ubii.topicData.TopicDataRecord.double_list)
}
void TopicDataRecord::clear_double_list() {
  if (has_double_list()) {
    delete type_.double_list_;
    clear_has_type();
  }
}
void TopicDataRecord::set_allocated_string_list(::ubii::dataStructure::StringList* string_list) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  clear_type();
  if (string_list) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      string_list = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, string_list, submessage_arena);
    }
    set_has_string_list();
    type_.string_list_ = string_list;
  }
  // @@protoc_insertion_point(field_set_allocated:ubii.topicData.TopicDataRecord.string_list)
}
void TopicDataRecord::clear_string_list() {
  if (has_string_list()) {
    delete type_.string_list_;
    clear_has_type();
  }
}
void TopicDataRecord::set_allocated_bool_list(::ubii::dataStructure::BoolList* bool_list) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  clear_type();
  if (bool_list) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      bool_list = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, bool_list, submessage_arena);
    }
    set_has_bool_list();
    type_.bool_list_ = bool_list;
  }
  // @@protoc_insertion_point(field_set_allocated:ubii.topicData.TopicDataRecord.bool_list)
}
void TopicDataRecord::clear_bool_list() {
  if (has_bool_list()) {
    delete type_.bool_list_;
    clear_has_type();
  }
}
void TopicDataRecord::set_allocated_image2d(::ubii::dataStructure::Image2D* image2d) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  clear_type();
  if (image2d) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      image2d = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, image2d, submessage_arena);
    }
    set_has_image2d();
    type_.image2d_ = image2d;
  }
  // @@protoc_insertion_point(field_set_allocated:ubii.topicData.TopicDataRecord.image2D)
}
void TopicDataRecord::clear_image2d() {
  if (has_image2d()) {
    delete type_.image2d_;
    clear_has_type();
  }
}
void TopicDataRecord::set_allocated_image2d_list(::ubii::dataStructure::Image2DList* image2d_list) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  clear_type();
  if (image2d_list) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      image2d_list = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, image2d_list, submessage_arena);
    }
    set_has_image2d_list();
    type_.image2d_list_ = image2d_list;
  }
  // @@protoc_insertion_point(field_set_allocated:ubii.topicData.TopicDataRecord.image2D_list)
}
void TopicDataRecord::clear_image2d_list() {
  if (has_image2d_list()) {
    delete type_.image2d_list_;
    clear_has_type();
  }
}
void TopicDataRecord::set_allocated_session(::ubii::sessions::Session* session) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  clear_type();
  if (session) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      session = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, session, submessage_arena);
    }
    set_has_session();
    type_.session_ = session;
  }
  // @@protoc_insertion_point(field_set_allocated:ubii.topicData.TopicDataRecord.session)
}
void TopicDataRecord::clear_session() {
  if (has_session()) {
    delete type_.session_;
    clear_has_type();
  }
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int TopicDataRecord::kTopicFieldNumber;
const int TopicDataRecord::kTimestampFieldNumber;
const int TopicDataRecord::kDoubleFieldNumber;
const int TopicDataRecord::kBoolFieldNumber;
const int TopicDataRecord::kStringFieldNumber;
const int TopicDataRecord::kInt32FieldNumber;
const int TopicDataRecord::kFloatFieldNumber;
const int TopicDataRecord::kVector2FieldNumber;
const int TopicDataRecord::kVector2ListFieldNumber;
const int TopicDataRecord::kVector3FieldNumber;
const int TopicDataRecord::kVector3ListFieldNumber;
const int TopicDataRecord::kVector4FieldNumber;
const int TopicDataRecord::kVector4ListFieldNumber;
const int TopicDataRecord::kQuaternionFieldNumber;
const int TopicDataRecord::kQuaternionListFieldNumber;
const int TopicDataRecord::kMatrix3X2FieldNumber;
const int TopicDataRecord::kMatrix4X4FieldNumber;
const int TopicDataRecord::kColorFieldNumber;
const int TopicDataRecord::kTouchEventFieldNumber;
const int TopicDataRecord::kTouchEventListFieldNumber;
const int TopicDataRecord::kKeyEventFieldNumber;
const int TopicDataRecord::kMouseEventFieldNumber;
const int TopicDataRecord::kMyoEventFieldNumber;
const int TopicDataRecord::kPose2DFieldNumber;
const int TopicDataRecord::kPose3DFieldNumber;
const int TopicDataRecord::kObject2DFieldNumber;
const int TopicDataRecord::kObject3DFieldNumber;
const int TopicDataRecord::kObject2DListFieldNumber;
const int TopicDataRecord::kObject3DListFieldNumber;
const int TopicDataRecord::kInt32ListFieldNumber;
const int TopicDataRecord::kFloatListFieldNumber;
const int TopicDataRecord::kDoubleListFieldNumber;
const int TopicDataRecord::kStringListFieldNumber;
const int TopicDataRecord::kBoolListFieldNumber;
const int TopicDataRecord::kImage2DFieldNumber;
const int TopicDataRecord::kImage2DListFieldNumber;
const int TopicDataRecord::kSessionFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

TopicDataRecord::TopicDataRecord()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_proto_2ftopicData_2ftopicDataRecord_2ftopicDataRecord_2eproto::scc_info_TopicDataRecord.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:ubii.topicData.TopicDataRecord)
}
TopicDataRecord::TopicDataRecord(const TopicDataRecord& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  topic_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.topic().size() > 0) {
    topic_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.topic_);
  }
  if (from.has_timestamp()) {
    timestamp_ = new ::ubii::topicData::Timestamp(*from.timestamp_);
  } else {
    timestamp_ = NULL;
  }
  clear_has_type();
  switch (from.type_case()) {
    case kDouble: {
      set_double_(from.double_());
      break;
    }
    case kBool: {
      set_bool_(from.bool_());
      break;
    }
    case kString: {
      set_string(from.string());
      break;
    }
    case kInt32: {
      set_int32(from.int32());
      break;
    }
    case kFloat: {
      set_float_(from.float_());
      break;
    }
    case kVector2: {
      mutable_vector2()->::ubii::dataStructure::Vector2::MergeFrom(from.vector2());
      break;
    }
    case kVector2List: {
      mutable_vector2_list()->::ubii::dataStructure::Vector2List::MergeFrom(from.vector2_list());
      break;
    }
    case kVector3: {
      mutable_vector3()->::ubii::dataStructure::Vector3::MergeFrom(from.vector3());
      break;
    }
    case kVector3List: {
      mutable_vector3_list()->::ubii::dataStructure::Vector3List::MergeFrom(from.vector3_list());
      break;
    }
    case kVector4: {
      mutable_vector4()->::ubii::dataStructure::Vector4::MergeFrom(from.vector4());
      break;
    }
    case kVector4List: {
      mutable_vector4_list()->::ubii::dataStructure::Vector4List::MergeFrom(from.vector4_list());
      break;
    }
    case kQuaternion: {
      mutable_quaternion()->::ubii::dataStructure::Quaternion::MergeFrom(from.quaternion());
      break;
    }
    case kQuaternionList: {
      mutable_quaternion_list()->::ubii::dataStructure::Quaternion::MergeFrom(from.quaternion_list());
      break;
    }
    case kMatrix3X2: {
      mutable_matrix3x2()->::ubii::dataStructure::Matrix3x2::MergeFrom(from.matrix3x2());
      break;
    }
    case kMatrix4X4: {
      mutable_matrix4x4()->::ubii::dataStructure::Matrix4x4::MergeFrom(from.matrix4x4());
      break;
    }
    case kColor: {
      mutable_color()->::ubii::dataStructure::Color::MergeFrom(from.color());
      break;
    }
    case kTouchEvent: {
      mutable_touch_event()->::ubii::dataStructure::TouchEvent::MergeFrom(from.touch_event());
      break;
    }
    case kTouchEventList: {
      mutable_touch_event_list()->::ubii::dataStructure::TouchEventList::MergeFrom(from.touch_event_list());
      break;
    }
    case kKeyEvent: {
      mutable_key_event()->::ubii::dataStructure::KeyEvent::MergeFrom(from.key_event());
      break;
    }
    case kMouseEvent: {
      mutable_mouse_event()->::ubii::dataStructure::MouseEvent::MergeFrom(from.mouse_event());
      break;
    }
    case kMyoEvent: {
      mutable_myo_event()->::ubii::dataStructure::MyoEvent::MergeFrom(from.myo_event());
      break;
    }
    case kPose2D: {
      mutable_pose2d()->::ubii::dataStructure::Pose2D::MergeFrom(from.pose2d());
      break;
    }
    case kPose3D: {
      mutable_pose3d()->::ubii::dataStructure::Pose3D::MergeFrom(from.pose3d());
      break;
    }
    case kObject2D: {
      mutable_object2d()->::ubii::dataStructure::Object2D::MergeFrom(from.object2d());
      break;
    }
    case kObject3D: {
      mutable_object3d()->::ubii::dataStructure::Object3D::MergeFrom(from.object3d());
      break;
    }
    case kObject2DList: {
      mutable_object2d_list()->::ubii::dataStructure::Object2DList::MergeFrom(from.object2d_list());
      break;
    }
    case kObject3DList: {
      mutable_object3d_list()->::ubii::dataStructure::Object3DList::MergeFrom(from.object3d_list());
      break;
    }
    case kInt32List: {
      mutable_int32_list()->::ubii::dataStructure::Int32List::MergeFrom(from.int32_list());
      break;
    }
    case kFloatList: {
      mutable_float_list()->::ubii::dataStructure::FloatList::MergeFrom(from.float_list());
      break;
    }
    case kDoubleList: {
      mutable_double_list()->::ubii::dataStructure::DoubleList::MergeFrom(from.double_list());
      break;
    }
    case kStringList: {
      mutable_string_list()->::ubii::dataStructure::StringList::MergeFrom(from.string_list());
      break;
    }
    case kBoolList: {
      mutable_bool_list()->::ubii::dataStructure::BoolList::MergeFrom(from.bool_list());
      break;
    }
    case kImage2D: {
      mutable_image2d()->::ubii::dataStructure::Image2D::MergeFrom(from.image2d());
      break;
    }
    case kImage2DList: {
      mutable_image2d_list()->::ubii::dataStructure::Image2DList::MergeFrom(from.image2d_list());
      break;
    }
    case kSession: {
      mutable_session()->::ubii::sessions::Session::MergeFrom(from.session());
      break;
    }
    case TYPE_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:ubii.topicData.TopicDataRecord)
}

void TopicDataRecord::SharedCtor() {
  topic_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  timestamp_ = NULL;
  clear_has_type();
}

TopicDataRecord::~TopicDataRecord() {
  // @@protoc_insertion_point(destructor:ubii.topicData.TopicDataRecord)
  SharedDtor();
}

void TopicDataRecord::SharedDtor() {
  topic_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) delete timestamp_;
  if (has_type()) {
    clear_type();
  }
}

void TopicDataRecord::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* TopicDataRecord::descriptor() {
  ::protobuf_proto_2ftopicData_2ftopicDataRecord_2ftopicDataRecord_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_proto_2ftopicData_2ftopicDataRecord_2ftopicDataRecord_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const TopicDataRecord& TopicDataRecord::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_proto_2ftopicData_2ftopicDataRecord_2ftopicDataRecord_2eproto::scc_info_TopicDataRecord.base);
  return *internal_default_instance();
}


void TopicDataRecord::clear_type() {
// @@protoc_insertion_point(one_of_clear_start:ubii.topicData.TopicDataRecord)
  switch (type_case()) {
    case kDouble: {
      // No need to clear
      break;
    }
    case kBool: {
      // No need to clear
      break;
    }
    case kString: {
      type_.string_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
      break;
    }
    case kInt32: {
      // No need to clear
      break;
    }
    case kFloat: {
      // No need to clear
      break;
    }
    case kVector2: {
      delete type_.vector2_;
      break;
    }
    case kVector2List: {
      delete type_.vector2_list_;
      break;
    }
    case kVector3: {
      delete type_.vector3_;
      break;
    }
    case kVector3List: {
      delete type_.vector3_list_;
      break;
    }
    case kVector4: {
      delete type_.vector4_;
      break;
    }
    case kVector4List: {
      delete type_.vector4_list_;
      break;
    }
    case kQuaternion: {
      delete type_.quaternion_;
      break;
    }
    case kQuaternionList: {
      delete type_.quaternion_list_;
      break;
    }
    case kMatrix3X2: {
      delete type_.matrix3x2_;
      break;
    }
    case kMatrix4X4: {
      delete type_.matrix4x4_;
      break;
    }
    case kColor: {
      delete type_.color_;
      break;
    }
    case kTouchEvent: {
      delete type_.touch_event_;
      break;
    }
    case kTouchEventList: {
      delete type_.touch_event_list_;
      break;
    }
    case kKeyEvent: {
      delete type_.key_event_;
      break;
    }
    case kMouseEvent: {
      delete type_.mouse_event_;
      break;
    }
    case kMyoEvent: {
      delete type_.myo_event_;
      break;
    }
    case kPose2D: {
      delete type_.pose2d_;
      break;
    }
    case kPose3D: {
      delete type_.pose3d_;
      break;
    }
    case kObject2D: {
      delete type_.object2d_;
      break;
    }
    case kObject3D: {
      delete type_.object3d_;
      break;
    }
    case kObject2DList: {
      delete type_.object2d_list_;
      break;
    }
    case kObject3DList: {
      delete type_.object3d_list_;
      break;
    }
    case kInt32List: {
      delete type_.int32_list_;
      break;
    }
    case kFloatList: {
      delete type_.float_list_;
      break;
    }
    case kDoubleList: {
      delete type_.double_list_;
      break;
    }
    case kStringList: {
      delete type_.string_list_;
      break;
    }
    case kBoolList: {
      delete type_.bool_list_;
      break;
    }
    case kImage2D: {
      delete type_.image2d_;
      break;
    }
    case kImage2DList: {
      delete type_.image2d_list_;
      break;
    }
    case kSession: {
      delete type_.session_;
      break;
    }
    case TYPE_NOT_SET: {
      break;
    }
  }
  _oneof_case_[0] = TYPE_NOT_SET;
}


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

  topic_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (GetArenaNoVirtual() == NULL && timestamp_ != NULL) {
    delete timestamp_;
  }
  timestamp_ = NULL;
  clear_type();
  _internal_metadata_.Clear();
}

bool TopicDataRecord::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:ubii.topicData.TopicDataRecord)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(16383u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string topic = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_topic()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->topic().data(), static_cast<int>(this->topic().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "ubii.topicData.TopicDataRecord.topic"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .ubii.topicData.Timestamp timestamp = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_timestamp()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // double double = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(25u /* 25 & 0xFF */)) {
          clear_type();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
                 input, &type_.double__)));
          set_has_double_();
        } else {
          goto handle_unusual;
        }
        break;
      }

      // bool bool = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(32u /* 32 & 0xFF */)) {
          clear_type();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &type_.bool__)));
          set_has_bool_();
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string string = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(42u /* 42 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_string()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->string().data(), static_cast<int>(this->string().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "ubii.topicData.TopicDataRecord.string"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .ubii.dataStructure.Vector2 vector2 = 6;
      case 6: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(50u /* 50 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_vector2()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .ubii.dataStructure.Vector3 vector3 = 7;
      case 7: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(58u /* 58 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_vector3()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .ubii.dataStructure.Vector4 vector4 = 8;
      case 8: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(66u /* 66 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_vector4()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .ubii.dataStructure.Quaternion quaternion = 9;
      case 9: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(74u /* 74 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_quaternion()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .ubii.dataStructure.Matrix3x2 matrix3x2 = 10;
      case 10: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(82u /* 82 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_matrix3x2()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .ubii.dataStructure.Matrix4x4 matrix4x4 = 11;
      case 11: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(90u /* 90 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_matrix4x4()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .ubii.dataStructure.Color color = 12;
      case 12: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(98u /* 98 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_color()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .ubii.dataStructure.TouchEvent touch_event = 13;
      case 13: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(106u /* 106 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_touch_event()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .ubii.dataStructure.KeyEvent key_event = 14;
      case 14: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(114u /* 114 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_key_event()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .ubii.dataStructure.MouseEvent mouse_event = 15;
      case 15: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(122u /* 122 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_mouse_event()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .ubii.dataStructure.MyoEvent myo_event = 16;
      case 16: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(130u /* 130 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_myo_event()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .ubii.dataStructure.Pose2D pose2D = 17;
      case 17: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(138u /* 138 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_pose2d()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .ubii.dataStructure.Pose3D pose3D = 18;
      case 18: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(146u /* 146 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_pose3d()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .ubii.dataStructure.Object2D object2D = 19;
      case 19: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(154u /* 154 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_object2d()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .ubii.dataStructure.Object3D object3D = 20;
      case 20: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(162u /* 162 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_object3d()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .ubii.dataStructure.Object2DList object2D_list = 21;
      case 21: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(170u /* 170 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_object2d_list()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .ubii.dataStructure.Object3DList object3D_list = 22;
      case 22: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(178u /* 178 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_object3d_list()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // int32 int32 = 23;
      case 23: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(184u /* 184 & 0xFF */)) {
          clear_type();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &type_.int32_)));
          set_has_int32();
        } else {
          goto handle_unusual;
        }
        break;
      }

      // float float = 24;
      case 24: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(197u /* 197 & 0xFF */)) {
          clear_type();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
                 input, &type_.float__)));
          set_has_float_();
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .ubii.dataStructure.Int32List int32_list = 25;
      case 25: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(202u /* 202 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_int32_list()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .ubii.dataStructure.FloatList float_list = 26;
      case 26: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(210u /* 210 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_float_list()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .ubii.dataStructure.DoubleList double_list = 27;
      case 27: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(218u /* 218 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_double_list()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .ubii.dataStructure.StringList string_list = 28;
      case 28: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(226u /* 226 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_string_list()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .ubii.dataStructure.BoolList bool_list = 29;
      case 29: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(234u /* 234 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_bool_list()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .ubii.dataStructure.Image2D image2D = 30;
      case 30: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(242u /* 242 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_image2d()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .ubii.dataStructure.Image2DList image2D_list = 31;
      case 31: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(250u /* 250 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_image2d_list()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .ubii.sessions.Session session = 32;
      case 32: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(2u /* 258 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_session()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .ubii.dataStructure.TouchEventList touch_event_list = 34;
      case 34: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(18u /* 274 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_touch_event_list()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .ubii.dataStructure.Vector2List vector2_list = 35;
      case 35: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(26u /* 282 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_vector2_list()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .ubii.dataStructure.Vector3List vector3_list = 36;
      case 36: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(34u /* 290 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_vector3_list()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .ubii.dataStructure.Vector4List vector4_list = 37;
      case 37: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(42u /* 298 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_vector4_list()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .ubii.dataStructure.Quaternion quaternion_list = 38;
      case 38: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(50u /* 306 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_quaternion_list()));
        } else {
          goto handle_unusual;
        }
        break;
      }

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

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

  // string topic = 1;
  if (this->topic().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->topic().data(), static_cast<int>(this->topic().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "ubii.topicData.TopicDataRecord.topic");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->topic(), output);
  }

  // .ubii.topicData.Timestamp timestamp = 2;
  if (this->has_timestamp()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      2, this->_internal_timestamp(), output);
  }

  // double double = 3;
  if (has_double_()) {
    ::google::protobuf::internal::WireFormatLite::WriteDouble(3, this->double_(), output);
  }

  // bool bool = 4;
  if (has_bool_()) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(4, this->bool_(), output);
  }

  // string string = 5;
  if (has_string()) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->string().data(), static_cast<int>(this->string().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "ubii.topicData.TopicDataRecord.string");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      5, this->string(), output);
  }

  // .ubii.dataStructure.Vector2 vector2 = 6;
  if (has_vector2()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      6, this->_internal_vector2(), output);
  }

  // .ubii.dataStructure.Vector3 vector3 = 7;
  if (has_vector3()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      7, this->_internal_vector3(), output);
  }

  // .ubii.dataStructure.Vector4 vector4 = 8;
  if (has_vector4()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      8, this->_internal_vector4(), output);
  }

  // .ubii.dataStructure.Quaternion quaternion = 9;
  if (has_quaternion()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      9, this->_internal_quaternion(), output);
  }

  // .ubii.dataStructure.Matrix3x2 matrix3x2 = 10;
  if (has_matrix3x2()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      10, this->_internal_matrix3x2(), output);
  }

  // .ubii.dataStructure.Matrix4x4 matrix4x4 = 11;
  if (has_matrix4x4()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      11, this->_internal_matrix4x4(), output);
  }

  // .ubii.dataStructure.Color color = 12;
  if (has_color()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      12, this->_internal_color(), output);
  }

  // .ubii.dataStructure.TouchEvent touch_event = 13;
  if (has_touch_event()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      13, this->_internal_touch_event(), output);
  }

  // .ubii.dataStructure.KeyEvent key_event = 14;
  if (has_key_event()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      14, this->_internal_key_event(), output);
  }

  // .ubii.dataStructure.MouseEvent mouse_event = 15;
  if (has_mouse_event()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      15, this->_internal_mouse_event(), output);
  }

  // .ubii.dataStructure.MyoEvent myo_event = 16;
  if (has_myo_event()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      16, this->_internal_myo_event(), output);
  }

  // .ubii.dataStructure.Pose2D pose2D = 17;
  if (has_pose2d()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      17, this->_internal_pose2d(), output);
  }

  // .ubii.dataStructure.Pose3D pose3D = 18;
  if (has_pose3d()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      18, this->_internal_pose3d(), output);
  }

  // .ubii.dataStructure.Object2D object2D = 19;
  if (has_object2d()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      19, this->_internal_object2d(), output);
  }

  // .ubii.dataStructure.Object3D object3D = 20;
  if (has_object3d()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      20, this->_internal_object3d(), output);
  }

  // .ubii.dataStructure.Object2DList object2D_list = 21;
  if (has_object2d_list()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      21, this->_internal_object2d_list(), output);
  }

  // .ubii.dataStructure.Object3DList object3D_list = 22;
  if (has_object3d_list()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      22, this->_internal_object3d_list(), output);
  }

  // int32 int32 = 23;
  if (has_int32()) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(23, this->int32(), output);
  }

  // float float = 24;
  if (has_float_()) {
    ::google::protobuf::internal::WireFormatLite::WriteFloat(24, this->float_(), output);
  }

  // .ubii.dataStructure.Int32List int32_list = 25;
  if (has_int32_list()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      25, this->_internal_int32_list(), output);
  }

  // .ubii.dataStructure.FloatList float_list = 26;
  if (has_float_list()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      26, this->_internal_float_list(), output);
  }

  // .ubii.dataStructure.DoubleList double_list = 27;
  if (has_double_list()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      27, this->_internal_double_list(), output);
  }

  // .ubii.dataStructure.StringList string_list = 28;
  if (has_string_list()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      28, this->_internal_string_list(), output);
  }

  // .ubii.dataStructure.BoolList bool_list = 29;
  if (has_bool_list()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      29, this->_internal_bool_list(), output);
  }

  // .ubii.dataStructure.Image2D image2D = 30;
  if (has_image2d()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      30, this->_internal_image2d(), output);
  }

  // .ubii.dataStructure.Image2DList image2D_list = 31;
  if (has_image2d_list()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      31, this->_internal_image2d_list(), output);
  }

  // .ubii.sessions.Session session = 32;
  if (has_session()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      32, this->_internal_session(), output);
  }

  // .ubii.dataStructure.TouchEventList touch_event_list = 34;
  if (has_touch_event_list()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      34, this->_internal_touch_event_list(), output);
  }

  // .ubii.dataStructure.Vector2List vector2_list = 35;
  if (has_vector2_list()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      35, this->_internal_vector2_list(), output);
  }

  // .ubii.dataStructure.Vector3List vector3_list = 36;
  if (has_vector3_list()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      36, this->_internal_vector3_list(), output);
  }

  // .ubii.dataStructure.Vector4List vector4_list = 37;
  if (has_vector4_list()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      37, this->_internal_vector4_list(), output);
  }

  // .ubii.dataStructure.Quaternion quaternion_list = 38;
  if (has_quaternion_list()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      38, this->_internal_quaternion_list(), output);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
  }
  // @@protoc_insertion_point(serialize_end:ubii.topicData.TopicDataRecord)
}

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

  // string topic = 1;
  if (this->topic().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->topic().data(), static_cast<int>(this->topic().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "ubii.topicData.TopicDataRecord.topic");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->topic(), target);
  }

  // .ubii.topicData.Timestamp timestamp = 2;
  if (this->has_timestamp()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        2, this->_internal_timestamp(), deterministic, target);
  }

  // double double = 3;
  if (has_double_()) {
    target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(3, this->double_(), target);
  }

  // bool bool = 4;
  if (has_bool_()) {
    target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(4, this->bool_(), target);
  }

  // string string = 5;
  if (has_string()) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->string().data(), static_cast<int>(this->string().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "ubii.topicData.TopicDataRecord.string");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        5, this->string(), target);
  }

  // .ubii.dataStructure.Vector2 vector2 = 6;
  if (has_vector2()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        6, this->_internal_vector2(), deterministic, target);
  }

  // .ubii.dataStructure.Vector3 vector3 = 7;
  if (has_vector3()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        7, this->_internal_vector3(), deterministic, target);
  }

  // .ubii.dataStructure.Vector4 vector4 = 8;
  if (has_vector4()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        8, this->_internal_vector4(), deterministic, target);
  }

  // .ubii.dataStructure.Quaternion quaternion = 9;
  if (has_quaternion()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        9, this->_internal_quaternion(), deterministic, target);
  }

  // .ubii.dataStructure.Matrix3x2 matrix3x2 = 10;
  if (has_matrix3x2()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        10, this->_internal_matrix3x2(), deterministic, target);
  }

  // .ubii.dataStructure.Matrix4x4 matrix4x4 = 11;
  if (has_matrix4x4()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        11, this->_internal_matrix4x4(), deterministic, target);
  }

  // .ubii.dataStructure.Color color = 12;
  if (has_color()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        12, this->_internal_color(), deterministic, target);
  }

  // .ubii.dataStructure.TouchEvent touch_event = 13;
  if (has_touch_event()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        13, this->_internal_touch_event(), deterministic, target);
  }

  // .ubii.dataStructure.KeyEvent key_event = 14;
  if (has_key_event()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        14, this->_internal_key_event(), deterministic, target);
  }

  // .ubii.dataStructure.MouseEvent mouse_event = 15;
  if (has_mouse_event()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        15, this->_internal_mouse_event(), deterministic, target);
  }

  // .ubii.dataStructure.MyoEvent myo_event = 16;
  if (has_myo_event()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        16, this->_internal_myo_event(), deterministic, target);
  }

  // .ubii.dataStructure.Pose2D pose2D = 17;
  if (has_pose2d()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        17, this->_internal_pose2d(), deterministic, target);
  }

  // .ubii.dataStructure.Pose3D pose3D = 18;
  if (has_pose3d()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        18, this->_internal_pose3d(), deterministic, target);
  }

  // .ubii.dataStructure.Object2D object2D = 19;
  if (has_object2d()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        19, this->_internal_object2d(), deterministic, target);
  }

  // .ubii.dataStructure.Object3D object3D = 20;
  if (has_object3d()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        20, this->_internal_object3d(), deterministic, target);
  }

  // .ubii.dataStructure.Object2DList object2D_list = 21;
  if (has_object2d_list()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        21, this->_internal_object2d_list(), deterministic, target);
  }

  // .ubii.dataStructure.Object3DList object3D_list = 22;
  if (has_object3d_list()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        22, this->_internal_object3d_list(), deterministic, target);
  }

  // int32 int32 = 23;
  if (has_int32()) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(23, this->int32(), target);
  }

  // float float = 24;
  if (has_float_()) {
    target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(24, this->float_(), target);
  }

  // .ubii.dataStructure.Int32List int32_list = 25;
  if (has_int32_list()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        25, this->_internal_int32_list(), deterministic, target);
  }

  // .ubii.dataStructure.FloatList float_list = 26;
  if (has_float_list()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        26, this->_internal_float_list(), deterministic, target);
  }

  // .ubii.dataStructure.DoubleList double_list = 27;
  if (has_double_list()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        27, this->_internal_double_list(), deterministic, target);
  }

  // .ubii.dataStructure.StringList string_list = 28;
  if (has_string_list()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        28, this->_internal_string_list(), deterministic, target);
  }

  // .ubii.dataStructure.BoolList bool_list = 29;
  if (has_bool_list()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        29, this->_internal_bool_list(), deterministic, target);
  }

  // .ubii.dataStructure.Image2D image2D = 30;
  if (has_image2d()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        30, this->_internal_image2d(), deterministic, target);
  }

  // .ubii.dataStructure.Image2DList image2D_list = 31;
  if (has_image2d_list()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        31, this->_internal_image2d_list(), deterministic, target);
  }

  // .ubii.sessions.Session session = 32;
  if (has_session()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        32, this->_internal_session(), deterministic, target);
  }

  // .ubii.dataStructure.TouchEventList touch_event_list = 34;
  if (has_touch_event_list()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        34, this->_internal_touch_event_list(), deterministic, target);
  }

  // .ubii.dataStructure.Vector2List vector2_list = 35;
  if (has_vector2_list()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        35, this->_internal_vector2_list(), deterministic, target);
  }

  // .ubii.dataStructure.Vector3List vector3_list = 36;
  if (has_vector3_list()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        36, this->_internal_vector3_list(), deterministic, target);
  }

  // .ubii.dataStructure.Vector4List vector4_list = 37;
  if (has_vector4_list()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        37, this->_internal_vector4_list(), deterministic, target);
  }

  // .ubii.dataStructure.Quaternion quaternion_list = 38;
  if (has_quaternion_list()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        38, this->_internal_quaternion_list(), deterministic, target);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:ubii.topicData.TopicDataRecord)
  return target;
}

size_t TopicDataRecord::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:ubii.topicData.TopicDataRecord)
  size_t total_size = 0;

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
  }
  // string topic = 1;
  if (this->topic().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->topic());
  }

  // .ubii.topicData.Timestamp timestamp = 2;
  if (this->has_timestamp()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *timestamp_);
  }

  switch (type_case()) {
    // double double = 3;
    case kDouble: {
      total_size += 1 + 8;
      break;
    }
    // bool bool = 4;
    case kBool: {
      total_size += 1 + 1;
      break;
    }
    // string string = 5;
    case kString: {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->string());
      break;
    }
    // int32 int32 = 23;
    case kInt32: {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->int32());
      break;
    }
    // float float = 24;
    case kFloat: {
      total_size += 2 + 4;
      break;
    }
    // .ubii.dataStructure.Vector2 vector2 = 6;
    case kVector2: {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *type_.vector2_);
      break;
    }
    // .ubii.dataStructure.Vector2List vector2_list = 35;
    case kVector2List: {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *type_.vector2_list_);
      break;
    }
    // .ubii.dataStructure.Vector3 vector3 = 7;
    case kVector3: {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *type_.vector3_);
      break;
    }
    // .ubii.dataStructure.Vector3List vector3_list = 36;
    case kVector3List: {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *type_.vector3_list_);
      break;
    }
    // .ubii.dataStructure.Vector4 vector4 = 8;
    case kVector4: {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *type_.vector4_);
      break;
    }
    // .ubii.dataStructure.Vector4List vector4_list = 37;
    case kVector4List: {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *type_.vector4_list_);
      break;
    }
    // .ubii.dataStructure.Quaternion quaternion = 9;
    case kQuaternion: {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *type_.quaternion_);
      break;
    }
    // .ubii.dataStructure.Quaternion quaternion_list = 38;
    case kQuaternionList: {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *type_.quaternion_list_);
      break;
    }
    // .ubii.dataStructure.Matrix3x2 matrix3x2 = 10;
    case kMatrix3X2: {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *type_.matrix3x2_);
      break;
    }
    // .ubii.dataStructure.Matrix4x4 matrix4x4 = 11;
    case kMatrix4X4: {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *type_.matrix4x4_);
      break;
    }
    // .ubii.dataStructure.Color color = 12;
    case kColor: {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *type_.color_);
      break;
    }
    // .ubii.dataStructure.TouchEvent touch_event = 13;
    case kTouchEvent: {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *type_.touch_event_);
      break;
    }
    // .ubii.dataStructure.TouchEventList touch_event_list = 34;
    case kTouchEventList: {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *type_.touch_event_list_);
      break;
    }
    // .ubii.dataStructure.KeyEvent key_event = 14;
    case kKeyEvent: {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *type_.key_event_);
      break;
    }
    // .ubii.dataStructure.MouseEvent mouse_event = 15;
    case kMouseEvent: {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *type_.mouse_event_);
      break;
    }
    // .ubii.dataStructure.MyoEvent myo_event = 16;
    case kMyoEvent: {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *type_.myo_event_);
      break;
    }
    // .ubii.dataStructure.Pose2D pose2D = 17;
    case kPose2D: {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *type_.pose2d_);
      break;
    }
    // .ubii.dataStructure.Pose3D pose3D = 18;
    case kPose3D: {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *type_.pose3d_);
      break;
    }
    // .ubii.dataStructure.Object2D object2D = 19;
    case kObject2D: {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *type_.object2d_);
      break;
    }
    // .ubii.dataStructure.Object3D object3D = 20;
    case kObject3D: {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *type_.object3d_);
      break;
    }
    // .ubii.dataStructure.Object2DList object2D_list = 21;
    case kObject2DList: {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *type_.object2d_list_);
      break;
    }
    // .ubii.dataStructure.Object3DList object3D_list = 22;
    case kObject3DList: {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *type_.object3d_list_);
      break;
    }
    // .ubii.dataStructure.Int32List int32_list = 25;
    case kInt32List: {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *type_.int32_list_);
      break;
    }
    // .ubii.dataStructure.FloatList float_list = 26;
    case kFloatList: {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *type_.float_list_);
      break;
    }
    // .ubii.dataStructure.DoubleList double_list = 27;
    case kDoubleList: {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *type_.double_list_);
      break;
    }
    // .ubii.dataStructure.StringList string_list = 28;
    case kStringList: {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *type_.string_list_);
      break;
    }
    // .ubii.dataStructure.BoolList bool_list = 29;
    case kBoolList: {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *type_.bool_list_);
      break;
    }
    // .ubii.dataStructure.Image2D image2D = 30;
    case kImage2D: {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *type_.image2d_);
      break;
    }
    // .ubii.dataStructure.Image2DList image2D_list = 31;
    case kImage2DList: {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *type_.image2d_list_);
      break;
    }
    // .ubii.sessions.Session session = 32;
    case kSession: {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *type_.session_);
      break;
    }
    case TYPE_NOT_SET: {
      break;
    }
  }
  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

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

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

  if (from.topic().size() > 0) {

    topic_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.topic_);
  }
  if (from.has_timestamp()) {
    mutable_timestamp()->::ubii::topicData::Timestamp::MergeFrom(from.timestamp());
  }
  switch (from.type_case()) {
    case kDouble: {
      set_double_(from.double_());
      break;
    }
    case kBool: {
      set_bool_(from.bool_());
      break;
    }
    case kString: {
      set_string(from.string());
      break;
    }
    case kInt32: {
      set_int32(from.int32());
      break;
    }
    case kFloat: {
      set_float_(from.float_());
      break;
    }
    case kVector2: {
      mutable_vector2()->::ubii::dataStructure::Vector2::MergeFrom(from.vector2());
      break;
    }
    case kVector2List: {
      mutable_vector2_list()->::ubii::dataStructure::Vector2List::MergeFrom(from.vector2_list());
      break;
    }
    case kVector3: {
      mutable_vector3()->::ubii::dataStructure::Vector3::MergeFrom(from.vector3());
      break;
    }
    case kVector3List: {
      mutable_vector3_list()->::ubii::dataStructure::Vector3List::MergeFrom(from.vector3_list());
      break;
    }
    case kVector4: {
      mutable_vector4()->::ubii::dataStructure::Vector4::MergeFrom(from.vector4());
      break;
    }
    case kVector4List: {
      mutable_vector4_list()->::ubii::dataStructure::Vector4List::MergeFrom(from.vector4_list());
      break;
    }
    case kQuaternion: {
      mutable_quaternion()->::ubii::dataStructure::Quaternion::MergeFrom(from.quaternion());
      break;
    }
    case kQuaternionList: {
      mutable_quaternion_list()->::ubii::dataStructure::Quaternion::MergeFrom(from.quaternion_list());
      break;
    }
    case kMatrix3X2: {
      mutable_matrix3x2()->::ubii::dataStructure::Matrix3x2::MergeFrom(from.matrix3x2());
      break;
    }
    case kMatrix4X4: {
      mutable_matrix4x4()->::ubii::dataStructure::Matrix4x4::MergeFrom(from.matrix4x4());
      break;
    }
    case kColor: {
      mutable_color()->::ubii::dataStructure::Color::MergeFrom(from.color());
      break;
    }
    case kTouchEvent: {
      mutable_touch_event()->::ubii::dataStructure::TouchEvent::MergeFrom(from.touch_event());
      break;
    }
    case kTouchEventList: {
      mutable_touch_event_list()->::ubii::dataStructure::TouchEventList::MergeFrom(from.touch_event_list());
      break;
    }
    case kKeyEvent: {
      mutable_key_event()->::ubii::dataStructure::KeyEvent::MergeFrom(from.key_event());
      break;
    }
    case kMouseEvent: {
      mutable_mouse_event()->::ubii::dataStructure::MouseEvent::MergeFrom(from.mouse_event());
      break;
    }
    case kMyoEvent: {
      mutable_myo_event()->::ubii::dataStructure::MyoEvent::MergeFrom(from.myo_event());
      break;
    }
    case kPose2D: {
      mutable_pose2d()->::ubii::dataStructure::Pose2D::MergeFrom(from.pose2d());
      break;
    }
    case kPose3D: {
      mutable_pose3d()->::ubii::dataStructure::Pose3D::MergeFrom(from.pose3d());
      break;
    }
    case kObject2D: {
      mutable_object2d()->::ubii::dataStructure::Object2D::MergeFrom(from.object2d());
      break;
    }
    case kObject3D: {
      mutable_object3d()->::ubii::dataStructure::Object3D::MergeFrom(from.object3d());
      break;
    }
    case kObject2DList: {
      mutable_object2d_list()->::ubii::dataStructure::Object2DList::MergeFrom(from.object2d_list());
      break;
    }
    case kObject3DList: {
      mutable_object3d_list()->::ubii::dataStructure::Object3DList::MergeFrom(from.object3d_list());
      break;
    }
    case kInt32List: {
      mutable_int32_list()->::ubii::dataStructure::Int32List::MergeFrom(from.int32_list());
      break;
    }
    case kFloatList: {
      mutable_float_list()->::ubii::dataStructure::FloatList::MergeFrom(from.float_list());
      break;
    }
    case kDoubleList: {
      mutable_double_list()->::ubii::dataStructure::DoubleList::MergeFrom(from.double_list());
      break;
    }
    case kStringList: {
      mutable_string_list()->::ubii::dataStructure::StringList::MergeFrom(from.string_list());
      break;
    }
    case kBoolList: {
      mutable_bool_list()->::ubii::dataStructure::BoolList::MergeFrom(from.bool_list());
      break;
    }
    case kImage2D: {
      mutable_image2d()->::ubii::dataStructure::Image2D::MergeFrom(from.image2d());
      break;
    }
    case kImage2DList: {
      mutable_image2d_list()->::ubii::dataStructure::Image2DList::MergeFrom(from.image2d_list());
      break;
    }
    case kSession: {
      mutable_session()->::ubii::sessions::Session::MergeFrom(from.session());
      break;
    }
    case TYPE_NOT_SET: {
      break;
    }
  }
}

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

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

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

void TopicDataRecord::Swap(TopicDataRecord* other) {
  if (other == this) return;
  InternalSwap(other);
}
void TopicDataRecord::InternalSwap(TopicDataRecord* other) {
  using std::swap;
  topic_.Swap(&other->topic_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  swap(timestamp_, other->timestamp_);
  swap(type_, other->type_);
  swap(_oneof_case_[0], other->_oneof_case_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
}

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


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

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

TopicDataRecordList::TopicDataRecordList()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_proto_2ftopicData_2ftopicDataRecord_2ftopicDataRecord_2eproto::scc_info_TopicDataRecordList.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:ubii.topicData.TopicDataRecordList)
}
TopicDataRecordList::TopicDataRecordList(const TopicDataRecordList& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      elements_(from.elements_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:ubii.topicData.TopicDataRecordList)
}

void TopicDataRecordList::SharedCtor() {
}

TopicDataRecordList::~TopicDataRecordList() {
  // @@protoc_insertion_point(destructor:ubii.topicData.TopicDataRecordList)
  SharedDtor();
}

void TopicDataRecordList::SharedDtor() {
}

void TopicDataRecordList::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* TopicDataRecordList::descriptor() {
  ::protobuf_proto_2ftopicData_2ftopicDataRecord_2ftopicDataRecord_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_proto_2ftopicData_2ftopicDataRecord_2ftopicDataRecord_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const TopicDataRecordList& TopicDataRecordList::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_proto_2ftopicData_2ftopicDataRecord_2ftopicDataRecord_2eproto::scc_info_TopicDataRecordList.base);
  return *internal_default_instance();
}


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

  elements_.Clear();
  _internal_metadata_.Clear();
}

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

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

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

  // repeated .ubii.topicData.TopicDataRecord elements = 1;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->elements_size()); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      1,
      this->elements(static_cast<int>(i)),
      output);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
  }
  // @@protoc_insertion_point(serialize_end:ubii.topicData.TopicDataRecordList)
}

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

  // repeated .ubii.topicData.TopicDataRecord elements = 1;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->elements_size()); i < n; i++) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        1, this->elements(static_cast<int>(i)), deterministic, target);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:ubii.topicData.TopicDataRecordList)
  return target;
}

size_t TopicDataRecordList::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:ubii.topicData.TopicDataRecordList)
  size_t total_size = 0;

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
  }
  // repeated .ubii.topicData.TopicDataRecord elements = 1;
  {
    unsigned int count = static_cast<unsigned int>(this->elements_size());
    total_size += 1UL * count;
    for (unsigned int i = 0; i < count; i++) {
      total_size +=
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          this->elements(static_cast<int>(i)));
    }
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

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

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

  elements_.MergeFrom(from.elements_);
}

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

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

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

void TopicDataRecordList::Swap(TopicDataRecordList* other) {
  if (other == this) return;
  InternalSwap(other);
}
void TopicDataRecordList::InternalSwap(TopicDataRecordList* other) {
  using std::swap;
  CastToBase(&elements_)->InternalSwap(CastToBase(&other->elements_));
  _internal_metadata_.Swap(&other->_internal_metadata_);
}

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


// @@protoc_insertion_point(namespace_scope)
}  // namespace topicData
}  // namespace ubii
namespace google {
namespace protobuf {
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::ubii::topicData::TopicDataRecord* Arena::CreateMaybeMessage< ::ubii::topicData::TopicDataRecord >(Arena* arena) {
  return Arena::CreateInternal< ::ubii::topicData::TopicDataRecord >(arena);
}
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::ubii::topicData::TopicDataRecordList* Arena::CreateMaybeMessage< ::ubii::topicData::TopicDataRecordList >(Arena* arena) {
  return Arena::CreateInternal< ::ubii::topicData::TopicDataRecordList >(arena);
}
}  // namespace protobuf
}  // namespace google

// @@protoc_insertion_point(global_scope)
