14 #include <boost/uuid/uuid.hpp>
15 #include <vlutil/vlUuid.h>
16 #include <boost/serialization/access.hpp>
17 #include <boost/serialization/nvp.hpp>
25 virtual void uuidChanged() = 0;
37 operator DtString () {
return markingText(); };
83 explicit DtUUID(
const std::string&,
DtUUIDOwner* =
nullptr,
bool blockMarkingTextLookup =
false);
84 explicit DtUUID(
const char*,
DtUUIDOwner* =
nullptr,
bool blockMarkingTextLookup =
false);
87 explicit DtUUID(
const unsigned char* data,
size_t dataLength,
DtUUIDOwner* =
nullptr);
90 DtUUID& operator=(
const boost::uuids::uuid & orig);
91 DtUUID& operator=(
const DtVrlUuid&);
92 bool operator<(
const DtUUID & rhs)
const;
105 return sizeof(myData);
108 void setBuffer(
const char*);
111 static bool isVrfUUID(
const DtString&);
113 bool isBoostUUID()
const;
114 bool isVrfUUID()
const;
116 UUIDType uuidType()
const;
119 virtual void setUUID(
const DtString&,
bool blockMarkingTextLookup =
false);
120 virtual void setUUID(
const DtVrlUuid&);
121 virtual const DtString& uuidString()
const;
133 virtual void setMarkingText(
const DtString&);
137 virtual void setStringUUID(
const DtString&);
140 virtual void generateUUID();
143 virtual void clearUUID();
145 virtual DtVrlUuid vrlUuid()
const;
157 bool operator!=(
const DtVrlUuid& rhs)
const {
return !(*
this == rhs); };
159 virtual bool isValid()
const;
160 virtual bool isStringUUID()
const;
163 size_t hashValue()
const;
165 boost::uuids::uuid
uuid()
const
167 return asBoostUUID();
170 boost::uuids::uuid asBoostUUID()
const;
172 static const DtUUID& nullUUID();
175 virtual DtString markingText()
const;
178 std::string string()
const;
201 static bool isValidBoostUUIDString(
const DtString& str);
203 virtual size_t calcHashValue()
const;
207 return myAddedForUpgrade;
212 myAddedForUpgrade = b;
216 friend class boost::serialization::access;
221 template<
class Archive>
222 void serialize(Archive & ar,
const unsigned int version)
224 if (Archive::is_loading::value)
228 ar & BOOST_SERIALIZATION_NVP(uuidS);
230 setUUID(uuidS.c_str());
234 std::string uuidS = uuidString().c_str();
236 ar & BOOST_SERIALIZATION_NVP(uuidS);
241 virtual void convertStringToData(
const std::string&);
242 virtual boost::uuids::uuid convertToBoostUUID(
const DtString&);
243 virtual boost::uuids::uuid convertStringToBoostUUID(
const DtString&,
bool blockMarkingTextLookup =
false);
244 virtual const char* convertStringToStringUUID(
const char* t)
const;
DtString myMarkingText
Definition: uuid.h:55
UUID is a unique ID wrapper class.
Definition: uuid.h:59
virtual DtString markingText() override
Definition: uuid.h:50
bool addedForUpgrade() const
Definition: uuid.h:205
Definition: asciiSerializable.h:38
virtual bool deserialize(const DtString &)=0
This function should take the string that was serialized via serialize() and fill this object with th...
DT_DLL_terrainCS bool operator==(const DtDegMinSec &lhs, const DtDegMinSec &rhs)
virtual DtString serialize()=0
The following characters are reserved and cannot be used in serialization: '|', ':'.
static DtObjectIdentificationResolver theObjectIdentificationResolver
Definition: uuid.h:258
size_t myHashValue
Definition: uuid.h:260
bool operator!=(const DtUUID &rhs) const
Definition: uuid.h:154
const char * data() const
Not this also contains the special marker – the actual UUID starts at byte 1.
Definition: uuid.h:98
Optional owner of this UUID. Since the UUID can change when remapped, supply an owner to be notified ...
Definition: uuid.h:22
bool myAddedForUpgrade
Definition: uuid.h:261
std::size_t operator()(const DtUUID &s) const
Definition: uuid.h:270
size_t hashValue() const
If the hashValue is 0 and this is a valid UUID, this will throw a std::runtime_exception.
bool operator>(const DtObjectType &lhs, const DtSimulationModelSetLoader::EntityData &rhs)
Definition: simulationModelSetLoader.h:1393
virtual DtString objectType() const =0
Should return the string name of this object. The object name should not be part of the serialization...
Simple provider that will give the marking text of the object.
Definition: uuid.h:41
DtString myMarkingText
Definition: uuid.h:255
std::size_t hash_value(const DtNodeBoundingInfoPtr &p)
needed for boost::unordered
Definition: boundingNodeInfo.h:89
UUIDType
Definition: uuid.h:62
virtual ~DtUUIDMarkingTextProvider()
Definition: uuid.h:33
virtual void setMarkingText(const DtString &s)
Definition: uuid.h:49
bool operator!=(const DtString &rhs) const
Definition: uuid.h:155
DtUUIDOwner * myOwner
Definition: uuid.h:256
DtString myUUIDString
If the assignment is not a valid boost UUID then the string UUID is what is used. ...
Definition: uuid.h:253
Definition: objectIdentificationResolver.h:29
#define DT_DLL_vrfutil
This file is used to determine how to build Disable inconsistent dll linkage warning Visual Studio 6...
Definition: vrfutilDefines.h:34
virtual DtUUIDMarkingTextProvider * clone() const =0
void setAddedForUpgrade(bool b)
Definition: uuid.h:210
unsigned int dataSize() const
Definition: uuid.h:103
void serialize(Archive &ar, const unsigned int version)
When the class Archive corresponds to an output archive, the & operator is defined similar to <<...
Definition: uuid.h:222
To allow for faster marking text lookups, the DtUUIDMarkingTextProvider class wraps an object that wi...
Definition: uuid.h:30
bool operator!=(const DtVrlUuid &rhs) const
Definition: uuid.h:157
boost::uuids::uuid uuid() const
Definition: uuid.h:165