32 #ifndef ARNPERSIST_HPP 33 #define ARNPERSIST_HPP 39 #include <QStringList> 43 class ArnPersistPrivate;
56 class ArnItemPersist :
protected ArnItem 68 explicit ArnItemPersist(
ArnPersist* arnPersist);
69 virtual ~ArnItemPersist();
70 void setStoreId(
int id) {_storeId = id;}
71 int storeId()
const {
return _storeId;}
72 void setStoreType( StoreType type) {_storeType =
type;}
73 StoreType storeType()
const {
return _storeType;}
74 void setMandatory(
bool v) {_isMandatory = v;}
75 bool isMandatory()
const {
return _isMandatory;}
77 ArnItem* toArnItem() {
return this;}
78 static ArnItemPersist* fromArnItem(
ArnItem* item) {
return static_cast<ArnItemPersist*
>( item);}
90 using ArnItem::deleteLater;
108 explicit ArnVcs( QObject* parent = arnNullptr);
112 void notify(
const QString msg);
113 void progress(
int, QString msg=QString());
115 void userSettingsR( QString name, QString email);
116 void filesR( QStringList files);
120 void branchesR( QStringList branches);
121 void tagsR( QStringList tags);
122 void statusR( QString statusLines);
123 void diffR( QString diffLines);
124 void logRecordR( QString lines);
125 void logR( QStringList refs, QStringList msgs);
128 virtual void log(
int numLog);
129 virtual void files( QString ref);
130 virtual void commit( QString commitMsg, QStringList files, QString name, QString email);
131 virtual void tag( QString name, QString ref);
132 virtual void diff( QString ref, QStringList files);
133 virtual void logRecord( QString ref);
135 virtual void branches();
136 virtual void status();
137 virtual void userSettings();
138 virtual void setUserSettings( QString userName, QString userEmail);
139 virtual void checkout( QString ref, QStringList files);
174 explicit ArnPersist( QObject* parent = arnNullptr);
184 bool setMountPoint(
const QString& path);
200 void setPersistDir(
const QString& path);
208 void setArchiveDir(
const QString& path);
218 void setVcs( ArnVcs* vcs);
226 bool setupDataBase(
const QString& dbName =
"persist.db");
234 bool flush(
const QString& path = QString());
237 QString metaDbValue(
const QString& attr,
const QString& def = QString());
238 bool setMetaDbValue(
const QString& attr,
const QString& value);
239 bool getDbId(
const QString& path,
int& storeId);
240 bool getDbValue(
int storeId, QString& path, QByteArray& value);
241 bool getDbValue(
const QString& path, QByteArray& value,
int& storeId);
242 bool getDbMandatoryList( QList<int>& storeIdList);
243 bool getDbList(
bool isUsed, QList<int>& storeIdList);
244 bool insertDbValue(
const QString& path,
const QByteArray& value);
245 bool updateDbValue(
int storeId,
const QByteArray& value);
246 bool updateDbUsed(
int storeId,
int isUsed);
247 bool updateDbMandatory(
int storeId,
int isMandatory);
257 bool doArchive(
const QString& name = QString());
261 ArnPersist( ArnPersistPrivate& dd, QObject* parent);
262 ArnPersistPrivate*
const d_ptr;
266 void sapiFlush(
const QString& path);
267 void sapiTest(
const QString& str,
int i=0);
268 void sapiLs(
const QString& path);
270 void sapiRm(
const QString& path);
271 void sapiTouch(
const QString& path);
272 void sapiDbMandatory(
const QString& path,
bool isMandatory);
273 void sapiDbMandatoryLs(
const QString& path);
274 void sapiDbLs(
const QString& path,
bool isUsed =
true);
275 void sapiDbMarkUnused(
const QString& path);
280 void doArnModeChanged(
const QString& path, uint linkId,
Arn::ObjectMode mode);
287 ArnItemPersist* getPersistItem(
const QString& path);
288 ArnItemPersist* setupMandatory(
const QString& path,
bool isMandatory);
289 void removeFilePersistItem(
const QString& path);
290 void getFileList( QStringList& flist,
const QDir& dir,
const QDir* baseDir = arnNullptr);
291 void loadFile(
const QString& relPath);
292 void doLoadMandatory();
294 void setupSapi( ArnPersistSapi* sapi);
295 void convertFileList( QStringList& files,
Arn::NameF nameF);
296 void dbSetupReadValue(
const QString& meta,
const QString& valueTxt,
298 void dbSetupWriteValue(QString& meta, QString& valueTxt, QByteArray& value);
301 #endif // ARNPERSIST_HPP void setValue(const ArnItem &other, int ignoreSame=Arn::SameValue::DefaultAction)
Assign the value of an other ArnItem to an Arn Data Object
void setDelay(int delay)
Set delay of data changed signal.
Class for handling persistent Arn Data object.
Class for advertising that a service is available.
Arn::DataType type() const
The type stored in the Arn Data Object
Arn::ObjectMode getMode() const
void addMode(Arn::ObjectMode mode)
Add general mode settings for this Arn Data Object
QByteArray arnExport() const
QByteArray toByteArray(bool *isOk=arnNullptr) const
void setIgnoreSameValue(bool isIgnore=true)
Set skipping assignment of equal value.
void arnImport(const QByteArray &data, int ignoreSame=Arn::SameValue::DefaultAction)
Import data to an Arn Data Object
bool open(const QString &path)
Open a handle to an Arn Data Object
Assigning same value gives default action set in ArnM or ArnItem.
QString path(Arn::NameF nameF=Arn::NameF::EmptyOk) const
Path of the Arn Data Object
void bypassDelayPending()
uint linkId() const
Get the id for this Arn Data Object
#define ARNLIBSHARED_EXPORT
#define MQ_DECLARE_ENUM(EStruct)
Enums.
Handle for an Arn Data Object.