17 #include <QSharedPointer>
24 static constexpr
unsigned InvalidUniqueID = 0xFFFFFFFF;
25 static constexpr
unsigned MinUniqueID = 0x00000100;
28 using Shared = QSharedPointer<ccUniqueIDGenerator>;
34 void reset() { m_lastUniqueID = MinUniqueID; }
36 unsigned fetchOne() {
return ++m_lastUniqueID; }
38 unsigned getLast()
const {
return m_lastUniqueID; }
41 if (ID > m_lastUniqueID) m_lastUniqueID = ID;
72 virtual inline QString
getName()
const {
return m_name; }
79 m_removeFlag = removeFlag;
86 virtual inline unsigned getUniqueID()
const {
return m_uniqueID; }
129 return (getClassID() &
type) ==
type;
175 void setMetaData(
const QVariantMap& dataset,
bool overwrite =
false);
184 const QVariantMap&
metaData()
const {
return m_metaData; }
186 inline void setBaseName(
const QString& baseName) { m_baseName = baseName; }
189 inline void setFullPath(
const QString& fullPaht) { m_filePath = fullPaht; }
195 return (m_flags & flag);
205 bool toFile(QFile& out,
short dataVersion)
const override;
int64_t CV_CLASS_ENUM
Type of object type flags (64 bits)
CV_OBJECT_FLAG
Type of a single scalar field value.
Generic "CLOUDVIEWER Object" template.
virtual bool getRemoveFlag()
Returns removeFlag.
QString getBaseName() const
short minimumFileVersion() const override
Returns the minimum file version required to save this instance.
virtual void setFlagState(CV_OBJECT_FLAG flag, bool state)
Sets flag state.
virtual void setLocked(bool state)
Sets the "enabled" property.
const QVariantMap & metaData() const
Returns meta-data map (const only)
void setBaseName(const QString &baseName)
static unsigned GetLastUniqueID()
Returns last assigned unique ID.
virtual bool isLocked() const
Returns whether the object is locked or not.
virtual QString getName() const
Returns object name.
virtual unsigned getUniqueID() const
Returns object unique ID.
unsigned m_flags
Object flags.
void setMetaData(const QString &key, const QVariant &data)
Sets a meta-data element.
bool isA(CV_CLASS_ENUM type) const
void setMetaData(const QVariantMap &dataset, bool overwrite=false)
Sets several meta-data elements at a time.
QVariant getMetaData(const QString &key) const
Returns a given associated meta data.
virtual bool getFlagState(CV_OBJECT_FLAG flag) const
Returns flag state.
bool hasMetaData(const QString &key) const
Returns whether a meta-data element with the given key exists or not.
virtual void setName(const QString &name)
Sets object name.
QString getFullPath() const
static CV_CLASS_ENUM ReadClassIDFromFile(QFile &in, short dataVersion)
Helper: reads out class ID from a binary stream.
void setFullPath(const QString &fullPaht)
virtual void setEnabled(bool state)
Sets the "enabled" property.
virtual CV_CLASS_ENUM getClassID() const =0
Returns class ID.
ccObject(QString name=QString())
Default constructor.
bool removeMetaData(const QString &key)
Removes a given associated meta-data.
virtual bool isEnabled() const
Returns whether the object is enabled or not.
QVariantMap m_metaData
Associated meta-data.
virtual void setUniqueID(unsigned ID)
Changes unique ID.
static unsigned GetNextUniqueID()
Returns a new unassigned unique ID.
bool toFile(QFile &out, short dataVersion) const override
Saves data to binary stream.
virtual void setRemoveFlag(bool removeFlag)
Sets removeFlag.
bool fromFile(QFile &in, short dataVersion, int flags, LoadedIDMap &oldToNewIDMap) override
Reimplemented from ccSerializableObject::fromFile.
static unsigned GetCurrentDBVersion()
Returns current database version.
ccObject(const ccObject &object)
Copy constructor.
bool isKindOf(CV_CLASS_ENUM type) const
static ccUniqueIDGenerator::Shared GetUniqueIDGenerator()
Returns the unique ID generator.
virtual void toggleActivation()
Toggles the "enabled" property.
static void SetUniqueIDGenerator(ccUniqueIDGenerator::Shared generator)
Sets the unique ID generator.
QString m_name
Object name.
Serializable object interface.
QMultiMap< unsigned, unsigned > LoadedIDMap
Map of loaded unique IDs (old ID --> new ID)
ccUniqueIDGenerator()
Default constructor.
unsigned fetchOne()
Returns a (new) unique ID.
void update(unsigned ID)
Updates the value of the last generated unique ID with the current one.
void reset()
Resets the unique ID.
unsigned getLast() const
Returns the value of the last generated unique ID.
QSharedPointer< ccUniqueIDGenerator > Shared
Shared type.