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;
62 static unsigned GetCurrentDBVersion();
72 virtual inline QString
getName()
const {
return m_name; }
79 m_removeFlag = removeFlag;
86 virtual inline unsigned getUniqueID()
const {
return m_uniqueID; }
92 virtual void setUniqueID(
unsigned ID);
129 return (getClassID() &
type) ==
type;
138 static unsigned GetNextUniqueID();
145 static unsigned GetLastUniqueID();
150 static CV_CLASS_ENUM ReadClassIDFromFile(QFile& in,
short dataVersion);
156 QVariant getMetaData(
const QString& key)
const;
162 bool removeMetaData(
const QString& key);
168 void setMetaData(
const QString& key,
const QVariant&
data);
175 void setMetaData(
const QVariantMap& dataset,
bool overwrite =
false);
181 bool hasMetaData(
const QString& key)
const;
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;
206 short minimumFileVersion()
const override;
213 bool fromFile(QFile& in,
216 LoadedIDMap& oldToNewIDMap)
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
virtual void setLocked(bool state)
Sets the "enabled" property.
const QVariantMap & metaData() const
Returns meta-data map (const only)
void setBaseName(const QString &baseName)
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.
bool isA(CV_CLASS_ENUM type) const
virtual bool getFlagState(CV_OBJECT_FLAG flag) const
Returns flag state.
virtual void setName(const QString &name)
Sets object name.
QString getFullPath() const
void setFullPath(const QString &fullPaht)
virtual void setEnabled(bool state)
Sets the "enabled" property.
virtual CV_CLASS_ENUM getClassID() const =0
Returns class ID.
virtual bool isEnabled() const
Returns whether the object is enabled or not.
QVariantMap m_metaData
Associated meta-data.
virtual void setRemoveFlag(bool removeFlag)
Sets removeFlag.
bool isKindOf(CV_CLASS_ENUM type) const
virtual void toggleActivation()
Toggles the "enabled" property.
QString m_name
Object name.
Serializable object interface.
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.