33 #include "private/ArnPipe_p.hpp" 38 ArnPipePrivate::ArnPipePrivate()
47 ArnPipePrivate::~ArnPipePrivate()
59 :
ArnItemB( *new ArnPipePrivate, parent)
66 :
ArnItemB( *new ArnPipePrivate, parent)
87 ArnLinkHandle handleData;
88 setupSeq( handleData);
92 errorLog( QString(tr(
"Assigning bytearray Pipe:")) + QString::fromUtf8( value.constData(), value.size()),
108 ArnLinkHandle handleData;
109 handleData.add( ArnLinkHandle::QueueFindRegexp, QVariant( rx));
113 errorLog( QString(tr(
"Assigning bytearray PipeOW:")) + QString::fromUtf8( value.constData(), value.size()),
119 void ArnPipe::setupSeq( ArnLinkHandle& handleData)
123 if (!d->_useSendSeq)
return;
125 handleData.add( ArnLinkHandle::SeqNo, QVariant( d->_sendSeqNum));
126 d->_sendSeqNum = (d->_sendSeqNum + 1) % 1000;
134 return d->_useSendSeq;
142 d->_useSendSeq = useSeq;
150 return d->_useCheckSeq;
158 d->_useCheckSeq = useCheckSeq;
162 void ArnPipe::itemUpdated(
const ArnLinkHandle& handleData,
const QByteArray* value)
166 ArnItemB::itemUpdated( handleData, value);
168 if (d->_useCheckSeq && handleData.has( ArnLinkHandle::SeqNo)) {
169 int seqNum = handleData.valueRef( ArnLinkHandle::SeqNo).toInt();
170 if (seqNum != d->_checkSeqNum) {
171 if (d->_checkSeqNum != -1)
173 d->_checkSeqNum = seqNum;
175 d->_checkSeqNum = (d->_checkSeqNum + 1) % 1000;
void setValue(const QByteArray &value)
Assign a QByteArray to a Pipe
void outOfSequence()
Signal emitted when the received sequence numbers are "out of sequence".
void setValue(const ArnBasicItem &other, int ignoreSame=Arn::SameValue::DefaultAction)
ArnBasicItem & setPipeMode()
Set general mode as Pipe for this Arn Data Object
void setSendSeq(bool useSendSeq)
Change usage of sending sequence numbers.
Assigning same value generates an update of the Arn Data Object
QByteArray toByteArray(bool *isOk=arnNullptr) const
bool isCheckSeq() const
Returns true if checking received sequence numbers.
void setValueOverwrite(const QByteArray &value, const ARN_RegExp &rx)
Assign a QByteArray to a Pipe by using Anti congest logic.
bool open(const QString &path)
Open a handle to an Arn Data Object
bool isOpen() const
State of the handle.
QString path(Arn::NameF nameF=Arn::NameF::EmptyOk) const
Path of the Arn Data Object
Base class handle for an Arn Data Object.
ArnItem specialized as a pipe.
void changed(const QByteArray &value)
Signal emitted when Pipe has received data.
ArnPipe & operator=(const QByteArray &value)
ArnPipe(QObject *parent=arnNullptr)
Standard constructor of a closed handle.
void setCheckSeq(bool useCheckSeq)
Change usage of checking received sequence numbers.
bool isSendSeq() const
Returns true if sending sequence numbers.