ADD: added parent number to the ID
This commit is contained in:
@@ -10,25 +10,60 @@ namespace SimCore {
|
|||||||
|
|
||||||
class Identifier{
|
class Identifier{
|
||||||
public:
|
public:
|
||||||
Identifier() = default;
|
|
||||||
Identifier(int number,SimCore::ObjectSource ObjectSource) ;
|
Identifier() ;
|
||||||
Identifier(std::pair<int, SimCore::ObjectSource> id);
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief constructs an object
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
Identifier(std::uint32_t parent,std::uint32_t number,bool external) ;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief constructs the ID out of an string
|
||||||
|
*
|
||||||
|
*/
|
||||||
Identifier(std::string str);
|
Identifier(std::string str);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief returns the number of the object, this plus the number of the parent make it unique
|
||||||
|
* @return uint32_t
|
||||||
|
*/
|
||||||
|
std::uint32_t getNumber();
|
||||||
|
|
||||||
int getNumber();
|
/**
|
||||||
SimCore::ObjectSource getObjectSource();
|
* @brief return the number of the parent, if 0 the parent is the Sim Manager
|
||||||
|
* @return uint32_t
|
||||||
|
*/
|
||||||
|
std::uint32_t getParentNumber();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief returns true if the ID belongs to an external ofject
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
bool isExternal();
|
bool isExternal();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief return true if the number is bigger than 0
|
||||||
|
*
|
||||||
|
*/
|
||||||
bool isValid();
|
bool isValid();
|
||||||
|
|
||||||
std::pair<int, SimCore::ObjectSource> getPair();
|
/**
|
||||||
|
* @brief returns the serilaized string of the ID
|
||||||
|
* @brief string
|
||||||
|
*/
|
||||||
std::string serialize();
|
std::string serialize();
|
||||||
|
|
||||||
friend bool operator==(const Identifier &lhs,const Identifier &rhs);
|
friend bool operator==(const Identifier &lhs,const Identifier &rhs);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
SimCore::ObjectSource objectSource_;
|
/// indicates if ID is from an external source
|
||||||
int number_ = 0;
|
bool external_ = false;
|
||||||
|
/// the number of the object related to his parent object
|
||||||
|
std::uint32_t number_ = 0;
|
||||||
|
/// the number of the parent, all ID from an external source the parent is the same
|
||||||
|
std::uint32_t parent_ = 0;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ namespace SimCore {
|
|||||||
public:
|
public:
|
||||||
IdentifierMaker();
|
IdentifierMaker();
|
||||||
|
|
||||||
std::shared_ptr<SimCore::Identifier> getNewIdentifier(SimCore::ObjectSource);
|
std::shared_ptr<SimCore::Identifier> getNewIdentifier(std::uint32_t parent,SimCore::ObjectSource);
|
||||||
|
|
||||||
bool isInList(std::shared_ptr<SimCore::Identifier>);
|
bool isInList(std::shared_ptr<SimCore::Identifier>);
|
||||||
|
|
||||||
|
|||||||
@@ -24,8 +24,9 @@ namespace messages {
|
|||||||
namespace track {
|
namespace track {
|
||||||
PROTOBUF_CONSTEXPR Identifier::Identifier(
|
PROTOBUF_CONSTEXPR Identifier::Identifier(
|
||||||
::_pbi::ConstantInitialized): _impl_{
|
::_pbi::ConstantInitialized): _impl_{
|
||||||
/*decltype(_impl_.number_)*/int64_t{0}
|
/*decltype(_impl_.parent_)*/0u
|
||||||
, /*decltype(_impl_.external_)*/0u
|
, /*decltype(_impl_.number_)*/0u
|
||||||
|
, /*decltype(_impl_.external_)*/false
|
||||||
, /*decltype(_impl_._cached_size_)*/{}} {}
|
, /*decltype(_impl_._cached_size_)*/{}} {}
|
||||||
struct IdentifierDefaultTypeInternal {
|
struct IdentifierDefaultTypeInternal {
|
||||||
PROTOBUF_CONSTEXPR IdentifierDefaultTypeInternal()
|
PROTOBUF_CONSTEXPR IdentifierDefaultTypeInternal()
|
||||||
@@ -49,6 +50,7 @@ const uint32_t TableStruct_Identifier_2eproto::offsets[] PROTOBUF_SECTION_VARIAB
|
|||||||
~0u, // no _oneof_case_
|
~0u, // no _oneof_case_
|
||||||
~0u, // no _weak_field_map_
|
~0u, // no _weak_field_map_
|
||||||
~0u, // no _inlined_string_donated_
|
~0u, // no _inlined_string_donated_
|
||||||
|
PROTOBUF_FIELD_OFFSET(::messages::track::Identifier, _impl_.parent_),
|
||||||
PROTOBUF_FIELD_OFFSET(::messages::track::Identifier, _impl_.number_),
|
PROTOBUF_FIELD_OFFSET(::messages::track::Identifier, _impl_.number_),
|
||||||
PROTOBUF_FIELD_OFFSET(::messages::track::Identifier, _impl_.external_),
|
PROTOBUF_FIELD_OFFSET(::messages::track::Identifier, _impl_.external_),
|
||||||
};
|
};
|
||||||
@@ -61,13 +63,13 @@ static const ::_pb::Message* const file_default_instances[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const char descriptor_table_protodef_Identifier_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
|
const char descriptor_table_protodef_Identifier_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
|
||||||
"\n\020Identifier.proto\022\016messages.track\".\n\nId"
|
"\n\020Identifier.proto\022\016messages.track\">\n\nId"
|
||||||
"entifier\022\016\n\006number\030\001 \001(\003\022\020\n\010external\030\002 \001"
|
"entifier\022\016\n\006parent\030\001 \001(\r\022\016\n\006number\030\002 \001(\r"
|
||||||
"(\rb\006proto3"
|
"\022\020\n\010external\030\003 \001(\010b\006proto3"
|
||||||
;
|
;
|
||||||
static ::_pbi::once_flag descriptor_table_Identifier_2eproto_once;
|
static ::_pbi::once_flag descriptor_table_Identifier_2eproto_once;
|
||||||
const ::_pbi::DescriptorTable descriptor_table_Identifier_2eproto = {
|
const ::_pbi::DescriptorTable descriptor_table_Identifier_2eproto = {
|
||||||
false, false, 90, descriptor_table_protodef_Identifier_2eproto,
|
false, false, 106, descriptor_table_protodef_Identifier_2eproto,
|
||||||
"Identifier.proto",
|
"Identifier.proto",
|
||||||
&descriptor_table_Identifier_2eproto_once, nullptr, 0, 1,
|
&descriptor_table_Identifier_2eproto_once, nullptr, 0, 1,
|
||||||
schemas, file_default_instances, TableStruct_Identifier_2eproto::offsets,
|
schemas, file_default_instances, TableStruct_Identifier_2eproto::offsets,
|
||||||
@@ -99,14 +101,15 @@ Identifier::Identifier(const Identifier& from)
|
|||||||
: ::PROTOBUF_NAMESPACE_ID::Message() {
|
: ::PROTOBUF_NAMESPACE_ID::Message() {
|
||||||
Identifier* const _this = this; (void)_this;
|
Identifier* const _this = this; (void)_this;
|
||||||
new (&_impl_) Impl_{
|
new (&_impl_) Impl_{
|
||||||
decltype(_impl_.number_){}
|
decltype(_impl_.parent_){}
|
||||||
|
, decltype(_impl_.number_){}
|
||||||
, decltype(_impl_.external_){}
|
, decltype(_impl_.external_){}
|
||||||
, /*decltype(_impl_._cached_size_)*/{}};
|
, /*decltype(_impl_._cached_size_)*/{}};
|
||||||
|
|
||||||
_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
|
_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
|
||||||
::memcpy(&_impl_.number_, &from._impl_.number_,
|
::memcpy(&_impl_.parent_, &from._impl_.parent_,
|
||||||
static_cast<size_t>(reinterpret_cast<char*>(&_impl_.external_) -
|
static_cast<size_t>(reinterpret_cast<char*>(&_impl_.external_) -
|
||||||
reinterpret_cast<char*>(&_impl_.number_)) + sizeof(_impl_.external_));
|
reinterpret_cast<char*>(&_impl_.parent_)) + sizeof(_impl_.external_));
|
||||||
// @@protoc_insertion_point(copy_constructor:messages.track.Identifier)
|
// @@protoc_insertion_point(copy_constructor:messages.track.Identifier)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -115,8 +118,9 @@ inline void Identifier::SharedCtor(
|
|||||||
(void)arena;
|
(void)arena;
|
||||||
(void)is_message_owned;
|
(void)is_message_owned;
|
||||||
new (&_impl_) Impl_{
|
new (&_impl_) Impl_{
|
||||||
decltype(_impl_.number_){int64_t{0}}
|
decltype(_impl_.parent_){0u}
|
||||||
, decltype(_impl_.external_){0u}
|
, decltype(_impl_.number_){0u}
|
||||||
|
, decltype(_impl_.external_){false}
|
||||||
, /*decltype(_impl_._cached_size_)*/{}
|
, /*decltype(_impl_._cached_size_)*/{}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -144,9 +148,9 @@ void Identifier::Clear() {
|
|||||||
// Prevent compiler warnings about cached_has_bits being unused
|
// Prevent compiler warnings about cached_has_bits being unused
|
||||||
(void) cached_has_bits;
|
(void) cached_has_bits;
|
||||||
|
|
||||||
::memset(&_impl_.number_, 0, static_cast<size_t>(
|
::memset(&_impl_.parent_, 0, static_cast<size_t>(
|
||||||
reinterpret_cast<char*>(&_impl_.external_) -
|
reinterpret_cast<char*>(&_impl_.external_) -
|
||||||
reinterpret_cast<char*>(&_impl_.number_)) + sizeof(_impl_.external_));
|
reinterpret_cast<char*>(&_impl_.parent_)) + sizeof(_impl_.external_));
|
||||||
_internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
|
_internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -156,18 +160,26 @@ const char* Identifier::_InternalParse(const char* ptr, ::_pbi::ParseContext* ct
|
|||||||
uint32_t tag;
|
uint32_t tag;
|
||||||
ptr = ::_pbi::ReadTag(ptr, &tag);
|
ptr = ::_pbi::ReadTag(ptr, &tag);
|
||||||
switch (tag >> 3) {
|
switch (tag >> 3) {
|
||||||
// int64 number = 1;
|
// uint32 parent = 1;
|
||||||
case 1:
|
case 1:
|
||||||
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
|
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
|
||||||
_impl_.number_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
|
_impl_.parent_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
|
||||||
CHK_(ptr);
|
CHK_(ptr);
|
||||||
} else
|
} else
|
||||||
goto handle_unusual;
|
goto handle_unusual;
|
||||||
continue;
|
continue;
|
||||||
// uint32 external = 2;
|
// uint32 number = 2;
|
||||||
case 2:
|
case 2:
|
||||||
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
|
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
|
||||||
_impl_.external_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
|
_impl_.number_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
|
||||||
|
CHK_(ptr);
|
||||||
|
} else
|
||||||
|
goto handle_unusual;
|
||||||
|
continue;
|
||||||
|
// bool external = 3;
|
||||||
|
case 3:
|
||||||
|
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
|
||||||
|
_impl_.external_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
|
||||||
CHK_(ptr);
|
CHK_(ptr);
|
||||||
} else
|
} else
|
||||||
goto handle_unusual;
|
goto handle_unusual;
|
||||||
@@ -201,16 +213,22 @@ uint8_t* Identifier::_InternalSerialize(
|
|||||||
uint32_t cached_has_bits = 0;
|
uint32_t cached_has_bits = 0;
|
||||||
(void) cached_has_bits;
|
(void) cached_has_bits;
|
||||||
|
|
||||||
// int64 number = 1;
|
// uint32 parent = 1;
|
||||||
if (this->_internal_number() != 0) {
|
if (this->_internal_parent() != 0) {
|
||||||
target = stream->EnsureSpace(target);
|
target = stream->EnsureSpace(target);
|
||||||
target = ::_pbi::WireFormatLite::WriteInt64ToArray(1, this->_internal_number(), target);
|
target = ::_pbi::WireFormatLite::WriteUInt32ToArray(1, this->_internal_parent(), target);
|
||||||
}
|
}
|
||||||
|
|
||||||
// uint32 external = 2;
|
// uint32 number = 2;
|
||||||
|
if (this->_internal_number() != 0) {
|
||||||
|
target = stream->EnsureSpace(target);
|
||||||
|
target = ::_pbi::WireFormatLite::WriteUInt32ToArray(2, this->_internal_number(), target);
|
||||||
|
}
|
||||||
|
|
||||||
|
// bool external = 3;
|
||||||
if (this->_internal_external() != 0) {
|
if (this->_internal_external() != 0) {
|
||||||
target = stream->EnsureSpace(target);
|
target = stream->EnsureSpace(target);
|
||||||
target = ::_pbi::WireFormatLite::WriteUInt32ToArray(2, this->_internal_external(), target);
|
target = ::_pbi::WireFormatLite::WriteBoolToArray(3, this->_internal_external(), target);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
|
if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
|
||||||
@@ -229,14 +247,19 @@ size_t Identifier::ByteSizeLong() const {
|
|||||||
// Prevent compiler warnings about cached_has_bits being unused
|
// Prevent compiler warnings about cached_has_bits being unused
|
||||||
(void) cached_has_bits;
|
(void) cached_has_bits;
|
||||||
|
|
||||||
// int64 number = 1;
|
// uint32 parent = 1;
|
||||||
if (this->_internal_number() != 0) {
|
if (this->_internal_parent() != 0) {
|
||||||
total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_number());
|
total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_parent());
|
||||||
}
|
}
|
||||||
|
|
||||||
// uint32 external = 2;
|
// uint32 number = 2;
|
||||||
|
if (this->_internal_number() != 0) {
|
||||||
|
total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_number());
|
||||||
|
}
|
||||||
|
|
||||||
|
// bool external = 3;
|
||||||
if (this->_internal_external() != 0) {
|
if (this->_internal_external() != 0) {
|
||||||
total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_external());
|
total_size += 1 + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
|
return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
|
||||||
@@ -257,6 +280,9 @@ void Identifier::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PRO
|
|||||||
uint32_t cached_has_bits = 0;
|
uint32_t cached_has_bits = 0;
|
||||||
(void) cached_has_bits;
|
(void) cached_has_bits;
|
||||||
|
|
||||||
|
if (from._internal_parent() != 0) {
|
||||||
|
_this->_internal_set_parent(from._internal_parent());
|
||||||
|
}
|
||||||
if (from._internal_number() != 0) {
|
if (from._internal_number() != 0) {
|
||||||
_this->_internal_set_number(from._internal_number());
|
_this->_internal_set_number(from._internal_number());
|
||||||
}
|
}
|
||||||
@@ -283,9 +309,9 @@ void Identifier::InternalSwap(Identifier* other) {
|
|||||||
::PROTOBUF_NAMESPACE_ID::internal::memswap<
|
::PROTOBUF_NAMESPACE_ID::internal::memswap<
|
||||||
PROTOBUF_FIELD_OFFSET(Identifier, _impl_.external_)
|
PROTOBUF_FIELD_OFFSET(Identifier, _impl_.external_)
|
||||||
+ sizeof(Identifier::_impl_.external_)
|
+ sizeof(Identifier::_impl_.external_)
|
||||||
- PROTOBUF_FIELD_OFFSET(Identifier, _impl_.number_)>(
|
- PROTOBUF_FIELD_OFFSET(Identifier, _impl_.parent_)>(
|
||||||
reinterpret_cast<char*>(&_impl_.number_),
|
reinterpret_cast<char*>(&_impl_.parent_),
|
||||||
reinterpret_cast<char*>(&other->_impl_.number_));
|
reinterpret_cast<char*>(&other->_impl_.parent_));
|
||||||
}
|
}
|
||||||
|
|
||||||
::PROTOBUF_NAMESPACE_ID::Metadata Identifier::GetMetadata() const {
|
::PROTOBUF_NAMESPACE_ID::Metadata Identifier::GetMetadata() const {
|
||||||
|
|||||||
@@ -180,25 +180,35 @@ class Identifier final :
|
|||||||
// accessors -------------------------------------------------------
|
// accessors -------------------------------------------------------
|
||||||
|
|
||||||
enum : int {
|
enum : int {
|
||||||
kNumberFieldNumber = 1,
|
kParentFieldNumber = 1,
|
||||||
kExternalFieldNumber = 2,
|
kNumberFieldNumber = 2,
|
||||||
|
kExternalFieldNumber = 3,
|
||||||
};
|
};
|
||||||
// int64 number = 1;
|
// uint32 parent = 1;
|
||||||
void clear_number();
|
void clear_parent();
|
||||||
int64_t number() const;
|
uint32_t parent() const;
|
||||||
void set_number(int64_t value);
|
void set_parent(uint32_t value);
|
||||||
private:
|
private:
|
||||||
int64_t _internal_number() const;
|
uint32_t _internal_parent() const;
|
||||||
void _internal_set_number(int64_t value);
|
void _internal_set_parent(uint32_t value);
|
||||||
public:
|
public:
|
||||||
|
|
||||||
// uint32 external = 2;
|
// uint32 number = 2;
|
||||||
void clear_external();
|
void clear_number();
|
||||||
uint32_t external() const;
|
uint32_t number() const;
|
||||||
void set_external(uint32_t value);
|
void set_number(uint32_t value);
|
||||||
private:
|
private:
|
||||||
uint32_t _internal_external() const;
|
uint32_t _internal_number() const;
|
||||||
void _internal_set_external(uint32_t value);
|
void _internal_set_number(uint32_t value);
|
||||||
|
public:
|
||||||
|
|
||||||
|
// bool external = 3;
|
||||||
|
void clear_external();
|
||||||
|
bool external() const;
|
||||||
|
void set_external(bool value);
|
||||||
|
private:
|
||||||
|
bool _internal_external() const;
|
||||||
|
void _internal_set_external(bool value);
|
||||||
public:
|
public:
|
||||||
|
|
||||||
// @@protoc_insertion_point(class_scope:messages.track.Identifier)
|
// @@protoc_insertion_point(class_scope:messages.track.Identifier)
|
||||||
@@ -209,8 +219,9 @@ class Identifier final :
|
|||||||
typedef void InternalArenaConstructable_;
|
typedef void InternalArenaConstructable_;
|
||||||
typedef void DestructorSkippable_;
|
typedef void DestructorSkippable_;
|
||||||
struct Impl_ {
|
struct Impl_ {
|
||||||
int64_t number_;
|
uint32_t parent_;
|
||||||
uint32_t external_;
|
uint32_t number_;
|
||||||
|
bool external_;
|
||||||
mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
|
mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
|
||||||
};
|
};
|
||||||
union { Impl_ _impl_; };
|
union { Impl_ _impl_; };
|
||||||
@@ -227,42 +238,62 @@ class Identifier final :
|
|||||||
#endif // __GNUC__
|
#endif // __GNUC__
|
||||||
// Identifier
|
// Identifier
|
||||||
|
|
||||||
// int64 number = 1;
|
// uint32 parent = 1;
|
||||||
inline void Identifier::clear_number() {
|
inline void Identifier::clear_parent() {
|
||||||
_impl_.number_ = int64_t{0};
|
_impl_.parent_ = 0u;
|
||||||
}
|
}
|
||||||
inline int64_t Identifier::_internal_number() const {
|
inline uint32_t Identifier::_internal_parent() const {
|
||||||
|
return _impl_.parent_;
|
||||||
|
}
|
||||||
|
inline uint32_t Identifier::parent() const {
|
||||||
|
// @@protoc_insertion_point(field_get:messages.track.Identifier.parent)
|
||||||
|
return _internal_parent();
|
||||||
|
}
|
||||||
|
inline void Identifier::_internal_set_parent(uint32_t value) {
|
||||||
|
|
||||||
|
_impl_.parent_ = value;
|
||||||
|
}
|
||||||
|
inline void Identifier::set_parent(uint32_t value) {
|
||||||
|
_internal_set_parent(value);
|
||||||
|
// @@protoc_insertion_point(field_set:messages.track.Identifier.parent)
|
||||||
|
}
|
||||||
|
|
||||||
|
// uint32 number = 2;
|
||||||
|
inline void Identifier::clear_number() {
|
||||||
|
_impl_.number_ = 0u;
|
||||||
|
}
|
||||||
|
inline uint32_t Identifier::_internal_number() const {
|
||||||
return _impl_.number_;
|
return _impl_.number_;
|
||||||
}
|
}
|
||||||
inline int64_t Identifier::number() const {
|
inline uint32_t Identifier::number() const {
|
||||||
// @@protoc_insertion_point(field_get:messages.track.Identifier.number)
|
// @@protoc_insertion_point(field_get:messages.track.Identifier.number)
|
||||||
return _internal_number();
|
return _internal_number();
|
||||||
}
|
}
|
||||||
inline void Identifier::_internal_set_number(int64_t value) {
|
inline void Identifier::_internal_set_number(uint32_t value) {
|
||||||
|
|
||||||
_impl_.number_ = value;
|
_impl_.number_ = value;
|
||||||
}
|
}
|
||||||
inline void Identifier::set_number(int64_t value) {
|
inline void Identifier::set_number(uint32_t value) {
|
||||||
_internal_set_number(value);
|
_internal_set_number(value);
|
||||||
// @@protoc_insertion_point(field_set:messages.track.Identifier.number)
|
// @@protoc_insertion_point(field_set:messages.track.Identifier.number)
|
||||||
}
|
}
|
||||||
|
|
||||||
// uint32 external = 2;
|
// bool external = 3;
|
||||||
inline void Identifier::clear_external() {
|
inline void Identifier::clear_external() {
|
||||||
_impl_.external_ = 0u;
|
_impl_.external_ = false;
|
||||||
}
|
}
|
||||||
inline uint32_t Identifier::_internal_external() const {
|
inline bool Identifier::_internal_external() const {
|
||||||
return _impl_.external_;
|
return _impl_.external_;
|
||||||
}
|
}
|
||||||
inline uint32_t Identifier::external() const {
|
inline bool Identifier::external() const {
|
||||||
// @@protoc_insertion_point(field_get:messages.track.Identifier.external)
|
// @@protoc_insertion_point(field_get:messages.track.Identifier.external)
|
||||||
return _internal_external();
|
return _internal_external();
|
||||||
}
|
}
|
||||||
inline void Identifier::_internal_set_external(uint32_t value) {
|
inline void Identifier::_internal_set_external(bool value) {
|
||||||
|
|
||||||
_impl_.external_ = value;
|
_impl_.external_ = value;
|
||||||
}
|
}
|
||||||
inline void Identifier::set_external(uint32_t value) {
|
inline void Identifier::set_external(bool value) {
|
||||||
_internal_set_external(value);
|
_internal_set_external(value);
|
||||||
// @@protoc_insertion_point(field_set:messages.track.Identifier.external)
|
// @@protoc_insertion_point(field_set:messages.track.Identifier.external)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
package messages.track;
|
package messages.track;
|
||||||
|
|
||||||
message Identifier{
|
message Identifier{
|
||||||
int64 number = 1;
|
uint32 parent = 1;
|
||||||
uint32 external = 2;
|
uint32 number = 2;
|
||||||
|
bool external = 3;
|
||||||
}
|
}
|
||||||
@@ -20,15 +20,15 @@ Z
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
enum ObjectSource : std::uint32_t {
|
enum ObjectSource : bool{
|
||||||
|
|
||||||
EXTERNAL = 1,
|
EXTERNAL = true,
|
||||||
INTERNAL = 2
|
INTERNAL = false
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
enum ContactEnvironment : std::uint32_t{
|
enum ContactEnvironment : std::uint8_t{
|
||||||
UNKNOWN = 0,
|
UNKNOWN = 0,
|
||||||
SURFACE = 1,
|
SURFACE = 1,
|
||||||
SUBSURFACE = 2,
|
SUBSURFACE = 2,
|
||||||
|
|||||||
@@ -8,43 +8,50 @@
|
|||||||
|
|
||||||
namespace SimCore {
|
namespace SimCore {
|
||||||
|
|
||||||
Identifier::Identifier(int number, SimCore::ObjectSource ObjectSource):number_(number),objectSource_(ObjectSource)
|
Identifier::Identifier()
|
||||||
|
{}
|
||||||
|
|
||||||
|
Identifier::Identifier(std::uint32_t parent,std::uint32_t number, bool external):parent_(parent),number_(number),external_(external)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Identifier::Identifier(std::pair<int, SimCore::ObjectSource> id):number_(id.first),objectSource_(id.second)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
Identifier::Identifier(std::string str)
|
Identifier::Identifier(std::string str)
|
||||||
{
|
{
|
||||||
std::vector<std::string> var = UtilFunctions::explode(str,StringDelimiter);
|
std::vector<std::string> var = UtilFunctions::explode(str,StringDelimiter);
|
||||||
if (UtilFunctions::isNumber(var[0])) {
|
if (UtilFunctions::isNumber(var[0])) {
|
||||||
number_ = stoi(var[0]);
|
parent_ = stoi(var[0]);
|
||||||
|
|
||||||
}
|
}
|
||||||
if (UtilFunctions::isNumber(var[1])) {
|
if (UtilFunctions::isNumber(var[1])) {
|
||||||
objectSource_ = (SimCore::ObjectSource)stoi(var[1]);
|
number_ = stoi(var[1]);
|
||||||
|
}
|
||||||
|
if (UtilFunctions::isNumber(var[2])) {
|
||||||
|
external_ = (bool)stoi(var[2]);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string Identifier::serialize()
|
std::string Identifier::serialize()
|
||||||
{
|
{
|
||||||
return std::to_string(number_) + StringDelimiter + std::to_string(objectSource_);
|
return std::to_string(parent_) + StringDelimiter + std::to_string(number_) + StringDelimiter + std::to_string(external_);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int Identifier::getNumber()
|
std::uint32_t Identifier::getNumber()
|
||||||
{
|
{
|
||||||
return number_;
|
return number_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::uint32_t Identifier::getParentNumber()
|
||||||
|
{
|
||||||
|
return parent_;
|
||||||
|
}
|
||||||
|
|
||||||
bool Identifier::isValid()
|
bool Identifier::isValid()
|
||||||
{
|
{
|
||||||
if (number_>0 && objectSource_ != 0) {
|
if (number_ > 0) {
|
||||||
return true;
|
return true;
|
||||||
}else
|
}else
|
||||||
{
|
{
|
||||||
@@ -55,30 +62,22 @@ bool Identifier::isValid()
|
|||||||
|
|
||||||
bool Identifier::isExternal()
|
bool Identifier::isExternal()
|
||||||
{
|
{
|
||||||
if (objectSource_ == SimCore::EXTERNAL) {
|
if (external_ == true) {
|
||||||
return true;
|
return true;
|
||||||
}else {
|
}else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
std::pair<int, SimCore::ObjectSource> Identifier::getPair()
|
|
||||||
{
|
|
||||||
|
|
||||||
return std::pair<int, SimCore::ObjectSource>(number_,objectSource_);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool operator==(const Identifier &lhs,const Identifier &rhs){
|
bool operator==(const Identifier &lhs,const Identifier &rhs){
|
||||||
if (lhs.number_ == rhs.number_ && lhs.objectSource_ == rhs.objectSource_) {
|
if (lhs.number_ == rhs.number_ && lhs.external_ == rhs.external_ && lhs.parent_ == rhs.parent_) {
|
||||||
return true;
|
return true;
|
||||||
}else{
|
}else{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SimCore::ObjectSource Identifier::getObjectSource()
|
|
||||||
{
|
|
||||||
return objectSource_;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -6,9 +6,10 @@
|
|||||||
|
|
||||||
namespace SimCore {
|
namespace SimCore {
|
||||||
|
|
||||||
IdentifierMaker::IdentifierMaker(){}
|
IdentifierMaker::IdentifierMaker()
|
||||||
|
{}
|
||||||
|
|
||||||
std::shared_ptr<SimCore::Identifier> IdentifierMaker::getNewIdentifier(SimCore::ObjectSource ObjectSource){
|
std::shared_ptr<SimCore::Identifier> IdentifierMaker::getNewIdentifier(std::uint32_t parent,SimCore::ObjectSource ObjectSource){
|
||||||
|
|
||||||
std::lock_guard<std::mutex> lock(mx_);
|
std::lock_guard<std::mutex> lock(mx_);
|
||||||
|
|
||||||
@@ -16,20 +17,21 @@ std::shared_ptr<SimCore::Identifier> IdentifierMaker::getNewIdentifier(SimCore::
|
|||||||
|
|
||||||
int lastNumber = 0;
|
int lastNumber = 0;
|
||||||
if (size > 0) {
|
if (size > 0) {
|
||||||
|
|
||||||
for (std::list<std::shared_ptr<SimCore::Identifier>>::iterator it=IDList_.begin(); it != IDList_.end(); ++it){
|
for (std::list<std::shared_ptr<SimCore::Identifier>>::iterator it=IDList_.begin(); it != IDList_.end(); ++it){
|
||||||
if (ObjectSource == it->get()->getObjectSource()) {
|
if (ObjectSource == it->get()->isExternal()) {
|
||||||
lastNumber = it->get()->getNumber();
|
lastNumber = it->get()->getNumber();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int newNumber = lastNumber+1;
|
int newNumber = lastNumber+1;
|
||||||
|
|
||||||
auto id_ = std::make_shared<SimCore::Identifier>(newNumber,ObjectSource);
|
auto id_ = std::make_shared<SimCore::Identifier>(parent,newNumber,ObjectSource);
|
||||||
IDList_.push_back(id_);
|
IDList_.push_back(id_);
|
||||||
return id_;
|
return id_;
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
auto id_ = std::make_shared<SimCore::Identifier>(1,ObjectSource);
|
auto id_ = std::make_shared<SimCore::Identifier>(parent,1,ObjectSource);
|
||||||
IDList_.push_back(id_);
|
IDList_.push_back(id_);
|
||||||
return id_;
|
return id_;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,9 +29,9 @@ RadarTrack::RadarTrack(std::string receivedMessage) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
messages::track::Identifier ID = trackMessage.entityidentifier();
|
// messages::track::Identifier ID = trackMessage.entityidentifier();
|
||||||
|
|
||||||
ID_ = SimCore::Identifier(
|
ID_ = SimCore::Identifier(trackMessage.mutable_entityidentifier()->parent(),
|
||||||
trackMessage.mutable_entityidentifier()->number(),
|
trackMessage.mutable_entityidentifier()->number(),
|
||||||
(SimCore::ObjectSource)trackMessage.mutable_entityidentifier()
|
(SimCore::ObjectSource)trackMessage.mutable_entityidentifier()
|
||||||
->external());
|
->external());
|
||||||
@@ -61,7 +61,7 @@ RadarTrack::RadarTrack(std::uint32_t deviceID, WHISPER::SourceType src,
|
|||||||
void RadarTrack::packToMessage() {
|
void RadarTrack::packToMessage() {
|
||||||
|
|
||||||
radarTrackMessage_.mutable_entityidentifier()->set_number(ID_.getNumber());
|
radarTrackMessage_.mutable_entityidentifier()->set_number(ID_.getNumber());
|
||||||
radarTrackMessage_.mutable_entityidentifier()->set_external((uint32_t)ID_.getObjectSource());
|
radarTrackMessage_.mutable_entityidentifier()->set_external((uint32_t)ID_.isExternal());
|
||||||
|
|
||||||
radarTrackMessage_.mutable_geocentricposition()->set_x(
|
radarTrackMessage_.mutable_geocentricposition()->set_x(
|
||||||
position_.getGeocentricPos()(SimCore::X));
|
position_.getGeocentricPos()(SimCore::X));
|
||||||
|
|||||||
@@ -30,9 +30,10 @@ namespace SimCore {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
messages::track::Identifier ID = trackMessage.entityidentifier();
|
// messages::track::Identifier ID = trackMessage.entityidentifier();
|
||||||
|
ID_ = SimCore::Identifier(trackMessage.mutable_entityidentifier()->parent(),
|
||||||
ID_ = SimCore::Identifier(trackMessage.mutable_entityidentifier()->number(),(SimCore::ObjectSource)trackMessage.mutable_entityidentifier()->external());
|
trackMessage.mutable_entityidentifier()->number(),
|
||||||
|
(SimCore::ObjectSource)trackMessage.mutable_entityidentifier()->external());
|
||||||
external_ = trackMessage.mutable_entityidentifier()->external();
|
external_ = trackMessage.mutable_entityidentifier()->external();
|
||||||
// trackNo_ = trackMessage.trackno();
|
// trackNo_ = trackMessage.trackno();
|
||||||
// external_ = trackMessage.external();
|
// external_ = trackMessage.external();
|
||||||
|
|||||||
@@ -11,10 +11,10 @@ SCENARIO("Testing the SimCorePositionClass")
|
|||||||
GIVEN("different position in different forms")
|
GIVEN("different position in different forms")
|
||||||
{
|
{
|
||||||
|
|
||||||
SimCore::Identifier ID1(100,SimCore::ObjectSource::EXTERNAL);
|
SimCore::Identifier ID1(0,100,SimCore::ObjectSource::EXTERNAL);
|
||||||
SimCore::Identifier ID2(100,SimCore::ObjectSource::EXTERNAL);
|
SimCore::Identifier ID2(0,100,SimCore::ObjectSource::EXTERNAL);
|
||||||
SimCore::Identifier ID3(100,SimCore::ObjectSource::INTERNAL);
|
SimCore::Identifier ID3(1,100,SimCore::ObjectSource::INTERNAL);
|
||||||
SimCore::Identifier ID4(200,SimCore::ObjectSource::INTERNAL);
|
SimCore::Identifier ID4(1,200,SimCore::ObjectSource::INTERNAL);
|
||||||
|
|
||||||
|
|
||||||
WHEN("constructing Position Object with data")
|
WHEN("constructing Position Object with data")
|
||||||
@@ -27,8 +27,8 @@ SCENARIO("Testing the SimCorePositionClass")
|
|||||||
{
|
{
|
||||||
REQUIRE(ID1.getNumber() == 100);
|
REQUIRE(ID1.getNumber() == 100);
|
||||||
REQUIRE(ID1.isExternal() == true);
|
REQUIRE(ID1.isExternal() == true);
|
||||||
REQUIRE(ID1.getPair().first == 100);
|
REQUIRE(ID1.getParentNumber() == 0);
|
||||||
REQUIRE(ID1.getPair().second == true);
|
REQUIRE(ID1.isExternal() == true);
|
||||||
|
|
||||||
REQUIRE(ID1 == ID2);
|
REQUIRE(ID1 == ID2);
|
||||||
REQUIRE(ID1 != ID3);
|
REQUIRE(ID1 != ID3);
|
||||||
|
|||||||
@@ -14,12 +14,12 @@ SCENARIO("Testing the SimCorePositionClass")
|
|||||||
{
|
{
|
||||||
|
|
||||||
SimCore::IdentifierMaker IDList;
|
SimCore::IdentifierMaker IDList;
|
||||||
auto ID1 = IDList.getNewIdentifier(SimCore::EXTERNAL);
|
auto ID1 = IDList.getNewIdentifier(1,SimCore::EXTERNAL);
|
||||||
auto ID2 = IDList.getNewIdentifier(SimCore::EXTERNAL);
|
auto ID2 = IDList.getNewIdentifier(1,SimCore::EXTERNAL);
|
||||||
auto ID3 = IDList.getNewIdentifier(SimCore::EXTERNAL);
|
auto ID3 = IDList.getNewIdentifier(1,SimCore::EXTERNAL);
|
||||||
|
|
||||||
auto ID4 = IDList.getNewIdentifier(SimCore::INTERNAL);
|
auto ID4 = IDList.getNewIdentifier(0,SimCore::INTERNAL);
|
||||||
auto ID5 = std::make_shared<SimCore::Identifier>(100, SimCore::EXTERNAL);
|
auto ID5 = std::make_shared<SimCore::Identifier>(0,100, SimCore::EXTERNAL);
|
||||||
|
|
||||||
WHEN("constructing Position Object with data")
|
WHEN("constructing Position Object with data")
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ SCENARIO("Testing the SimCore Track") {
|
|||||||
|
|
||||||
SimCore::IdentifierMaker IDMaker;
|
SimCore::IdentifierMaker IDMaker;
|
||||||
std::shared_ptr<SimCore::Identifier> ID =
|
std::shared_ptr<SimCore::Identifier> ID =
|
||||||
IDMaker.getNewIdentifier(SimCore::ObjectSource::INTERNAL);
|
IDMaker.getNewIdentifier(0,SimCore::ObjectSource::INTERNAL);
|
||||||
LOG_S(INFO)<<"ID: " << ID->getNumber();
|
LOG_S(INFO)<<"ID: " << ID->getNumber();
|
||||||
|
|
||||||
std::shared_ptr<SimCore::RadarTrack> RadartrackPtr =
|
std::shared_ptr<SimCore::RadarTrack> RadartrackPtr =
|
||||||
@@ -41,11 +41,11 @@ SCENARIO("Testing the SimCore Track") {
|
|||||||
|
|
||||||
SimCore::RadarTrack radarTrack2(serializedMSG);
|
SimCore::RadarTrack radarTrack2(serializedMSG);
|
||||||
|
|
||||||
SimCore::Identifier ID1(radarTrack2.getIdentifier().getPair());
|
SimCore::Identifier ID1(radarTrack2.getIdentifier());
|
||||||
auto tr0 = *RadartrackPtr.get();
|
auto tr0 = *RadartrackPtr.get();
|
||||||
SimCore::Identifier ID2(tr0.getIdentifier().getPair());
|
SimCore::Identifier ID2(tr0.getIdentifier());
|
||||||
|
|
||||||
LOG_S(INFO)<<"ID2 source: " << ID2.getObjectSource();
|
LOG_S(INFO)<<"ID2 source: " << ID2.isExternal();
|
||||||
|
|
||||||
if (ID1 == ID2) {
|
if (ID1 == ID2) {
|
||||||
isEqual = true;
|
isEqual = true;
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ SCENARIO("Testing the SimCore Track")
|
|||||||
|
|
||||||
std::shared_ptr<SimCore::Track> trackPtr = NULL;
|
std::shared_ptr<SimCore::Track> trackPtr = NULL;
|
||||||
SimCore::IdentifierMaker IDMaker;
|
SimCore::IdentifierMaker IDMaker;
|
||||||
auto ID = IDMaker.getNewIdentifier(SimCore::ObjectSource::EXTERNAL);
|
auto ID = IDMaker.getNewIdentifier(1,SimCore::ObjectSource::EXTERNAL);
|
||||||
|
|
||||||
|
|
||||||
std::string serializedMSG;
|
std::string serializedMSG;
|
||||||
|
|||||||
Reference in New Issue
Block a user