41 #include <QStringList> 46 #include <QWaitCondition> 48 class ArnThreadComStorage;
56 friend class ArnThreadComCaller;
57 friend class ArnThreadComProxyLock;
66 QStringList _retStringList;
69 static ArnThreadComStorage* getThreadComStorage();
70 static ArnThreadCom* getThreadCom();
72 QWaitCondition _commandEnd;
76 Q_DECLARE_METATYPE(ArnThreadCom*)
79 class ArnThreadComCaller
84 ~ArnThreadComCaller();
85 void waitCommandEnd();
90 class ArnThreadComProxyLock
94 ArnThreadComProxyLock( ArnThreadCom* threadCom);
95 ~ArnThreadComProxyLock();
112 static ArnM& instance();
114 static void setConsoleError(
bool isConsoleError);
119 static void setDefaultIgnoreSameValue(
bool isIgnore =
true);
124 static bool defaultIgnoreSameValue();
128 static bool isMainThread();
132 static bool isThreadedApp();
138 static int valueInt(
const QString&
path);
144 static double valueDouble(
const QString&
path);
156 static QString valueString(
const QString&
path);
162 static QByteArray valueByteArray(
const QString&
path);
168 static QVariant valueVariant(
const QString&
path);
175 static QStringList items(
const QString&
path);
180 static bool exist(
const QString&
path);
190 static bool isLeaf(
const QString&
path);
220 static void setValue(
const QString&
path,
const QString& value);
226 static void setValue(
const QString&
path,
const QByteArray& value);
233 static void setValue(
const QString&
path,
const QVariant& value,
const char* typeName = arnNullptr);
239 static void setValue(
const QString&
path,
const char* value);
247 static bool loadFromFile(
const QString&
path,
const QString& fileName,
Arn::Coding coding);
257 static bool loadFromDirRoot(
const QString&
path,
const QDir& dirRoot,
Arn::Coding coding);
265 static bool saveToFile(
const QString&
path,
const QString& fileName,
Arn::Coding coding);
268 static QString errorSysName();
273 static QByteArray info();
279 bool skipLocalSysLoading()
const;
288 void setSkipLocalSysLoading(
bool skipLocalSysLoading);
310 static void setupErrorlog( QObject* errLog);
313 void errorLogSig(
const QString& errText, uint errCode,
void*
reference);
317 virtual void customEvent( QEvent* ev);
319 static ArnLink* root();
322 static ArnLink* addTwin(
const QString&
path, ArnLink* child,
325 static void destroyLink( ArnLink* link,
bool isGlobal);
326 static void destroyLinkMain( ArnLink* link, ArnLink* startLink,
bool isGlobal);
327 static void changeRefCounter(
int step);
332 void onTimerMetrics();
333 static void linkProxy( ArnThreadCom* threadCom,
const QString&
path,
335 static void itemsProxy( ArnThreadCom* threadCom,
const QString&
path);
348 static ArnLink* linkMain(
const QString&
path, ArnLink *parent,
const QString&
name,
350 static ArnLink* addTwinMain(
const QString&
path, ArnLink* child,
353 static ArnLink* getRawLink( ArnLink *parent,
const QString&
name,
Arn::LinkFlags flags);
354 static QStringList itemsMain(
const ArnLink *parent);
355 static QStringList itemsMain(
const QString&
path);
357 static void doZeroRefLink( ArnLink* link);
362 QVector<QString> _errTextTab;
364 bool _defaultIgnoreSameValue;
365 bool _skipLocalSysLoading;
366 QObject* _errorLogger;
368 volatile bool _isThreadedApp;
369 QThread* _mainThread;
371 static int _countFolder;
372 static int _countLeaf;
373 static QAtomicInt _countRef;
374 ArnLink* _countFolderLink;
375 ArnLink* _countLeafLink;
376 ArnLink* _countRefLink;
377 QTimer* _timerMetrics;
void destroyLink(bool isGlobal=true)
Destroy the Arn Data Object
void setValue(const ArnBasicItem &other, int ignoreSame=Arn::SameValue::DefaultAction)
Arn::ObjectSyncMode syncMode() const
bool isAtomicOpProvider() const
void setAtomicOpProvider()
Set this Arn Data Object as Atomic Operator Provider
void * reference() const
Get the stored external reference.
static void destroyLinkLocal(const QString &path)
Destroy the local Arn Data Object at path
Link flags when accessing an Arn Data Object
QString path(Arn::NameF nameF=Arn::NameF::EmptyOk) const
Path of the Arn Data Object
#define ARNLIBSHARED_EXPORT
QString name(Arn::NameF nameF) const
Name of the Arn Data Object
ArnBasicItem & operator=(const ArnBasicItem &other)
Base class handle for an Arn Data Object.