ADD: added parent number to the ID
This commit is contained in:
@@ -9,26 +9,61 @@
|
||||
namespace SimCore {
|
||||
|
||||
class Identifier{
|
||||
public:
|
||||
Identifier() = default;
|
||||
Identifier(int number,SimCore::ObjectSource ObjectSource) ;
|
||||
Identifier(std::pair<int, SimCore::ObjectSource> id);
|
||||
public:
|
||||
|
||||
Identifier() ;
|
||||
|
||||
|
||||
/**
|
||||
* @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);
|
||||
|
||||
/**
|
||||
* @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();
|
||||
|
||||
/**
|
||||
* @brief return true if the number is bigger than 0
|
||||
*
|
||||
*/
|
||||
bool isValid();
|
||||
|
||||
std::pair<int, SimCore::ObjectSource> getPair();
|
||||
|
||||
/**
|
||||
* @brief returns the serilaized string of the ID
|
||||
* @brief string
|
||||
*/
|
||||
std::string serialize();
|
||||
|
||||
friend bool operator==(const Identifier &lhs,const Identifier &rhs);
|
||||
|
||||
private:
|
||||
SimCore::ObjectSource objectSource_;
|
||||
int number_ = 0;
|
||||
/// indicates if ID is from an external source
|
||||
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:
|
||||
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>);
|
||||
|
||||
|
||||
@@ -24,8 +24,9 @@ namespace messages {
|
||||
namespace track {
|
||||
PROTOBUF_CONSTEXPR Identifier::Identifier(
|
||||
::_pbi::ConstantInitialized): _impl_{
|
||||
/*decltype(_impl_.number_)*/int64_t{0}
|
||||
, /*decltype(_impl_.external_)*/0u
|
||||
/*decltype(_impl_.parent_)*/0u
|
||||
, /*decltype(_impl_.number_)*/0u
|
||||
, /*decltype(_impl_.external_)*/false
|
||||
, /*decltype(_impl_._cached_size_)*/{}} {}
|
||||
struct IdentifierDefaultTypeInternal {
|
||||
PROTOBUF_CONSTEXPR IdentifierDefaultTypeInternal()
|
||||
@@ -49,6 +50,7 @@ const uint32_t TableStruct_Identifier_2eproto::offsets[] PROTOBUF_SECTION_VARIAB
|
||||
~0u, // no _oneof_case_
|
||||
~0u, // no _weak_field_map_
|
||||
~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_.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) =
|
||||
"\n\020Identifier.proto\022\016messages.track\".\n\nId"
|
||||
"entifier\022\016\n\006number\030\001 \001(\003\022\020\n\010external\030\002 \001"
|
||||
"(\rb\006proto3"
|
||||
"\n\020Identifier.proto\022\016messages.track\">\n\nId"
|
||||
"entifier\022\016\n\006parent\030\001 \001(\r\022\016\n\006number\030\002 \001(\r"
|
||||
"\022\020\n\010external\030\003 \001(\010b\006proto3"
|
||||
;
|
||||
static ::_pbi::once_flag descriptor_table_Identifier_2eproto_once;
|
||||
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",
|
||||
&descriptor_table_Identifier_2eproto_once, nullptr, 0, 1,
|
||||
schemas, file_default_instances, TableStruct_Identifier_2eproto::offsets,
|
||||
@@ -99,14 +101,15 @@ Identifier::Identifier(const Identifier& from)
|
||||
: ::PROTOBUF_NAMESPACE_ID::Message() {
|
||||
Identifier* const _this = this; (void)_this;
|
||||
new (&_impl_) Impl_{
|
||||
decltype(_impl_.number_){}
|
||||
decltype(_impl_.parent_){}
|
||||
, decltype(_impl_.number_){}
|
||||
, decltype(_impl_.external_){}
|
||||
, /*decltype(_impl_._cached_size_)*/{}};
|
||||
|
||||
_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_) -
|
||||
reinterpret_cast<char*>(&_impl_.number_)) + sizeof(_impl_.external_));
|
||||
reinterpret_cast<char*>(&_impl_.parent_)) + sizeof(_impl_.external_));
|
||||
// @@protoc_insertion_point(copy_constructor:messages.track.Identifier)
|
||||
}
|
||||
|
||||
@@ -115,8 +118,9 @@ inline void Identifier::SharedCtor(
|
||||
(void)arena;
|
||||
(void)is_message_owned;
|
||||
new (&_impl_) Impl_{
|
||||
decltype(_impl_.number_){int64_t{0}}
|
||||
, decltype(_impl_.external_){0u}
|
||||
decltype(_impl_.parent_){0u}
|
||||
, decltype(_impl_.number_){0u}
|
||||
, decltype(_impl_.external_){false}
|
||||
, /*decltype(_impl_._cached_size_)*/{}
|
||||
};
|
||||
}
|
||||
@@ -144,9 +148,9 @@ void Identifier::Clear() {
|
||||
// Prevent compiler warnings about cached_has_bits being unused
|
||||
(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_.number_)) + sizeof(_impl_.external_));
|
||||
reinterpret_cast<char*>(&_impl_.parent_)) + sizeof(_impl_.external_));
|
||||
_internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
|
||||
}
|
||||
|
||||
@@ -156,18 +160,26 @@ const char* Identifier::_InternalParse(const char* ptr, ::_pbi::ParseContext* ct
|
||||
uint32_t tag;
|
||||
ptr = ::_pbi::ReadTag(ptr, &tag);
|
||||
switch (tag >> 3) {
|
||||
// int64 number = 1;
|
||||
// uint32 parent = 1;
|
||||
case 1:
|
||||
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);
|
||||
} else
|
||||
goto handle_unusual;
|
||||
continue;
|
||||
// uint32 external = 2;
|
||||
// uint32 number = 2;
|
||||
case 2:
|
||||
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);
|
||||
} else
|
||||
goto handle_unusual;
|
||||
@@ -201,16 +213,22 @@ uint8_t* Identifier::_InternalSerialize(
|
||||
uint32_t cached_has_bits = 0;
|
||||
(void) cached_has_bits;
|
||||
|
||||
// int64 number = 1;
|
||||
if (this->_internal_number() != 0) {
|
||||
// uint32 parent = 1;
|
||||
if (this->_internal_parent() != 0) {
|
||||
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) {
|
||||
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())) {
|
||||
@@ -229,14 +247,19 @@ size_t Identifier::ByteSizeLong() const {
|
||||
// Prevent compiler warnings about cached_has_bits being unused
|
||||
(void) cached_has_bits;
|
||||
|
||||
// int64 number = 1;
|
||||
if (this->_internal_number() != 0) {
|
||||
total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_number());
|
||||
// uint32 parent = 1;
|
||||
if (this->_internal_parent() != 0) {
|
||||
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) {
|
||||
total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_external());
|
||||
total_size += 1 + 1;
|
||||
}
|
||||
|
||||
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;
|
||||
(void) cached_has_bits;
|
||||
|
||||
if (from._internal_parent() != 0) {
|
||||
_this->_internal_set_parent(from._internal_parent());
|
||||
}
|
||||
if (from._internal_number() != 0) {
|
||||
_this->_internal_set_number(from._internal_number());
|
||||
}
|
||||
@@ -283,9 +309,9 @@ void Identifier::InternalSwap(Identifier* other) {
|
||||
::PROTOBUF_NAMESPACE_ID::internal::memswap<
|
||||
PROTOBUF_FIELD_OFFSET(Identifier, _impl_.external_)
|
||||
+ sizeof(Identifier::_impl_.external_)
|
||||
- PROTOBUF_FIELD_OFFSET(Identifier, _impl_.number_)>(
|
||||
reinterpret_cast<char*>(&_impl_.number_),
|
||||
reinterpret_cast<char*>(&other->_impl_.number_));
|
||||
- PROTOBUF_FIELD_OFFSET(Identifier, _impl_.parent_)>(
|
||||
reinterpret_cast<char*>(&_impl_.parent_),
|
||||
reinterpret_cast<char*>(&other->_impl_.parent_));
|
||||
}
|
||||
|
||||
::PROTOBUF_NAMESPACE_ID::Metadata Identifier::GetMetadata() const {
|
||||
|
||||
@@ -180,25 +180,35 @@ class Identifier final :
|
||||
// accessors -------------------------------------------------------
|
||||
|
||||
enum : int {
|
||||
kNumberFieldNumber = 1,
|
||||
kExternalFieldNumber = 2,
|
||||
kParentFieldNumber = 1,
|
||||
kNumberFieldNumber = 2,
|
||||
kExternalFieldNumber = 3,
|
||||
};
|
||||
// int64 number = 1;
|
||||
void clear_number();
|
||||
int64_t number() const;
|
||||
void set_number(int64_t value);
|
||||
// uint32 parent = 1;
|
||||
void clear_parent();
|
||||
uint32_t parent() const;
|
||||
void set_parent(uint32_t value);
|
||||
private:
|
||||
int64_t _internal_number() const;
|
||||
void _internal_set_number(int64_t value);
|
||||
uint32_t _internal_parent() const;
|
||||
void _internal_set_parent(uint32_t value);
|
||||
public:
|
||||
|
||||
// uint32 external = 2;
|
||||
void clear_external();
|
||||
uint32_t external() const;
|
||||
void set_external(uint32_t value);
|
||||
// uint32 number = 2;
|
||||
void clear_number();
|
||||
uint32_t number() const;
|
||||
void set_number(uint32_t value);
|
||||
private:
|
||||
uint32_t _internal_external() const;
|
||||
void _internal_set_external(uint32_t value);
|
||||
uint32_t _internal_number() const;
|
||||
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:
|
||||
|
||||
// @@protoc_insertion_point(class_scope:messages.track.Identifier)
|
||||
@@ -209,8 +219,9 @@ class Identifier final :
|
||||
typedef void InternalArenaConstructable_;
|
||||
typedef void DestructorSkippable_;
|
||||
struct Impl_ {
|
||||
int64_t number_;
|
||||
uint32_t external_;
|
||||
uint32_t parent_;
|
||||
uint32_t number_;
|
||||
bool external_;
|
||||
mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
|
||||
};
|
||||
union { Impl_ _impl_; };
|
||||
@@ -227,42 +238,62 @@ class Identifier final :
|
||||
#endif // __GNUC__
|
||||
// Identifier
|
||||
|
||||
// int64 number = 1;
|
||||
inline void Identifier::clear_number() {
|
||||
_impl_.number_ = int64_t{0};
|
||||
// uint32 parent = 1;
|
||||
inline void Identifier::clear_parent() {
|
||||
_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_;
|
||||
}
|
||||
inline int64_t Identifier::number() const {
|
||||
inline uint32_t Identifier::number() const {
|
||||
// @@protoc_insertion_point(field_get:messages.track.Identifier.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;
|
||||
}
|
||||
inline void Identifier::set_number(int64_t value) {
|
||||
inline void Identifier::set_number(uint32_t value) {
|
||||
_internal_set_number(value);
|
||||
// @@protoc_insertion_point(field_set:messages.track.Identifier.number)
|
||||
}
|
||||
|
||||
// uint32 external = 2;
|
||||
// bool external = 3;
|
||||
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_;
|
||||
}
|
||||
inline uint32_t Identifier::external() const {
|
||||
inline bool Identifier::external() const {
|
||||
// @@protoc_insertion_point(field_get:messages.track.Identifier.external)
|
||||
return _internal_external();
|
||||
}
|
||||
inline void Identifier::_internal_set_external(uint32_t value) {
|
||||
inline void Identifier::_internal_set_external(bool value) {
|
||||
|
||||
_impl_.external_ = value;
|
||||
}
|
||||
inline void Identifier::set_external(uint32_t value) {
|
||||
inline void Identifier::set_external(bool value) {
|
||||
_internal_set_external(value);
|
||||
// @@protoc_insertion_point(field_set:messages.track.Identifier.external)
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
package messages.track;
|
||||
|
||||
message Identifier{
|
||||
int64 number = 1;
|
||||
uint32 external = 2;
|
||||
uint32 parent = 1;
|
||||
uint32 number = 2;
|
||||
bool external = 3;
|
||||
}
|
||||
@@ -20,15 +20,15 @@ Z
|
||||
};
|
||||
|
||||
|
||||
enum ObjectSource : std::uint32_t {
|
||||
enum ObjectSource : bool{
|
||||
|
||||
EXTERNAL = 1,
|
||||
INTERNAL = 2
|
||||
EXTERNAL = true,
|
||||
INTERNAL = false
|
||||
|
||||
};
|
||||
|
||||
|
||||
enum ContactEnvironment : std::uint32_t{
|
||||
enum ContactEnvironment : std::uint8_t{
|
||||
UNKNOWN = 0,
|
||||
SURFACE = 1,
|
||||
SUBSURFACE = 2,
|
||||
|
||||
Reference in New Issue
Block a user