33 #include "private/ArnItemB_p.hpp" 34 #include "private/ArnBasicItem_p.hpp" 37 #include <QCoreApplication> 42 ArnItemBPrivate::ArnItemBPrivate()
45 _enableUpdNotify =
true;
46 _enableSetValue =
true;
50 ArnItemBPrivate::~ArnItemBPrivate()
63 , d_ptr( new ArnItemBPrivate)
83 bool ArnItemB::openWithFlags(
const QString& path,
Arn::LinkFlags linkFlags)
85 bool retVal = ArnBasicItem::openWithFlags(
path, linkFlags);
97 bool ArnItemB::openUuid(
const QString& path)
106 bool ArnItemB::openUuidPipe(
const QString& path)
108 bool stat = openUuid(
path);
115 bool ArnItemB::openFolder(
const QString& path)
117 QString folderPath =
path;
121 return open( folderPath);
132 void ArnItemB::setBlockEcho(
bool blockEcho)
136 d->_blockEcho = blockEcho;
140 void ArnItemB::setEnableSetValue(
bool enable)
144 d->_enableSetValue = enable;
148 void ArnItemB::setEnableUpdNotify(
bool enable)
152 d->_enableUpdNotify = enable;
158 ArnLinkHandle handle;
163 void ArnItemB::arnImport(
const QByteArray& data,
int ignoreSame, ArnLinkHandle& handleData)
167 if (!d->_enableSetValue)
return;
177 if (!d->_enableSetValue)
return;
187 if (!d->_enableSetValue)
return;
197 if (!d->_enableSetValue)
return;
207 if (!d->_enableSetValue)
return;
217 if (!d->_enableSetValue)
return;
227 if (!d->_enableSetValue)
return;
237 if (!d->_enableSetValue)
return;
247 if (!d->_enableSetValue)
return;
257 if (!d->_enableSetValue)
return;
267 if (!d->_enableSetValue)
return;
277 if (!d->_enableSetValue)
return;
287 if (!d->_enableSetValue)
return;
297 if (!d->_enableSetValue)
return;
307 if (!d->_enableSetValue)
return;
313 void ArnItemB::itemUpdated(
const ArnLinkHandle& handleData,
const QByteArray* value)
315 Q_UNUSED(handleData);
320 void ArnItemB::itemCreatedBelow(
const QString& path)
326 void ArnItemB::itemModeChangedBelow(
const QString& path, uint linkId,
Arn::ObjectMode mode)
334 void ArnItemB::setValue(
const QByteArray& value,
int ignoreSame, ArnLinkHandle& handleData)
338 if (!d->_enableSetValue)
return;
344 void ArnItemB::arnEvent( QEvent* ev,
bool isAlienThread)
349 QCoreApplication::postEvent(
this, ev);
357 void ArnItemB::customEvent( QEvent* ev)
363 ArnBasicItem::arnEvent( ev,
false);
367 void ArnItemB::doEvent( QEvent* ev)
377 quint32 sendId = e->
sendId();
379 if (d->_blockEcho && sendId ==
id)
382 addIsOnlyEcho( sendId);
384 if (d->_enableUpdNotify) {
385 const QByteArray* valueData = e->
valueData();
386 if (valueData && !valueData->isEmpty()) {
387 QByteArray value = QByteArray::fromRawData( valueData->constData() + 1, valueData->size() - 1);
400 itemCreatedBelow( e->
path());
412 modeUpdate( e->
mode());
static int baseType(int setVal=-1)
void setValue(const ArnBasicItem &other, int ignoreSame=Arn::SameValue::DefaultAction)
ArnBasicItem & setPipeMode()
Set general mode as Pipe for this Arn Data Object
const QByteArray * valueData() const
const QString & path() const
Arn::ObjectMode getMode() const
Use with care, link must be "referenced" before use, otherwise it might have been deleted...
const QString & path() const
uint itemId() const
Get the id for this ArnItem.
Arn::ObjectMode mode() const
const ArnLinkHandle & handleData() const
void addValue(int value)
AtomicOp adds an integer to an Arn Data Object
void setBits(int mask, int value, int ignoreSame=Arn::SameValue::DefaultAction)
AtomicOp assign an integer to specified bits in an Arn Data Object
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
Link flags when accessing an Arn Data Object
QString uuidPath(const QString &path)
Get a path to an Arn Object with a unique uuid name.
QString path(Arn::NameF nameF=Arn::NameF::EmptyOk) const
Path of the Arn Data Object
Base class handle for an Arn Data Object.
uint linkId() const
Get the id for this Arn Data Object
void arnLinkDestroyed()
Signal emitted when the Arn Data Object is destroyed.
bool isFolderPath(const QString &path)
Test if path is a folder path
ArnItemB(QObject *parent=arnNullptr)
Standard constructor of a closed handle.