38 #include <QCoreApplication>    43 void  ArnItemNet::init()
    59     setIgnoreSameValue( 
false);
    63 ArnItemNet::ArnItemNet( 
void* sessionHandler)
    66     _sessionHandler = sessionHandler;
    70 ArnItemNet::~ArnItemNet()
    74         qDebug() << 
"ArnItemNet destruct root: eventH=" << eventHandler() << 
" sessionH=" << _sessionHandler
    75                  << 
" isMon=" << _isMonitor << 
" netId=" << _netId
    76                  << 
" itemNet=" << 
this;
    82 bool  ArnItemNet::openWithFlags( 
const QString& path, 
Arn::LinkFlags linkFlags)
    86         qDebug() << 
"ArnItemNet open root: eventH=" << eventHandler() << 
" sessionH=" << _sessionHandler
    87                  << 
" isMon=" << _isMonitor << 
" netId=" << _netId
    88                  << 
" itemNet=" << 
this;
    92     return ArnBasicItem::openWithFlags( path, linkFlags);
    96 void  ArnItemNet::setNetId( uint netId)
   102 uint  ArnItemNet::netId()
  const   108 void*  ArnItemNet::sessionHandler()
  const   110     return _sessionHandler;
   114 void  ArnItemNet::addSyncModeString( 
const QByteArray& smode, 
bool linkShare)
   118     setIniMaster(                       smode.contains(
"ima"));
   119     setIniSlave(                        smode.contains(
"isl"));
   120     bool isMaster                     = smode.contains(
"mas");
   121     isMaster |= _iniSlave;  
   122     syncMode.set( syncMode.
Master,      isMaster);
   123     syncMode.set( syncMode.
AutoDestroy, smode.contains(
"autodestroy"));
   124     syncMode.set( syncMode.
Monitor,     smode.contains(
"mon"));
   126     addSyncMode( syncMode, linkShare);
   130 QByteArray  ArnItemNet::getSyncModeString()
  const   135     if (_iniSlave)                            smode += 
"isl ";
   136     else if (syncMode.is( syncMode.
Master))   smode += 
"master ";  
   137     else if (_iniMaster)                      smode += 
"ima ";
   139     if  (syncMode.is( syncMode.
AutoDestroy))  smode += 
"autodestroy ";
   140     if  (syncMode.is( syncMode.
Monitor))      smode += 
"mon ";
   142     return smode.trimmed();
   146 Arn::ObjectMode  ArnItemNet::stringToObjectMode( 
const QByteArray& modeString)
   149     if (modeString.contains(
'P'))  mode.set( mode.
Pipe);
   150     if (modeString.contains(
'V'))  mode.set( mode.
BiDir);  
   151     if (modeString.contains(
'B'))  mode.set( mode.
BiDir);
   152     if (modeString.contains(
'S'))  mode.set( mode.
Save);
   160     QByteArray  modeString;
   161     if (mode.is( mode.
Pipe))   modeString += 
"P";
   162     if (mode.is( mode.
BiDir))  modeString += 
"B";
   163     if (mode.is( mode.
Save))   modeString += 
"S";
   169 void  ArnItemNet::setModeString( 
const QByteArray& modeString)
   176 QByteArray  ArnItemNet::getModeString()
  const   179     return ObjectModeToString( mode);
   184 void  ArnItemNet::sendNewItemMonEvent( 
const QString& path, 
bool isOld)
   187     sendMonEvent( type, path.toUtf8(), 
true);
   192 void  ArnItemNet::sendMonEvent( 
int type, 
const QByteArray& data, 
bool isLocal)
   195     sendArnEventLink( &ev);
   199 void  ArnItemNet::setBlockEcho( 
bool blockEcho)
   201     _blockEcho = blockEcho;
   205 void  ArnItemNet::setDisable( 
bool disable)
   211 bool  ArnItemNet::isDisable()
  const   217 bool  ArnItemNet::isMonitor()
 const   223 void  ArnItemNet::setMonitor( 
bool isMonitor)
   225     _isMonitor = isMonitor;
   229 void  ArnItemNet::setQueueNum( 
int num)
   235 int  ArnItemNet::queueNum()
  const   241 void  ArnItemNet::nextEchoSeq()
   243     _curEchoSeq = (_curEchoSeq + 1) % 100;
   247 void ArnItemNet::resetEchoSeq()
   253 void  ArnItemNet::setEchoSeq( qint8 echoSeq)
   255     _curEchoSeq = echoSeq;
   259 qint8  ArnItemNet::echoSeq()
  const   261     return isBiDirMode() ? -1 : _curEchoSeq;
   265 bool  ArnItemNet::isEchoSeqOld( qint8 receivedEchoSeq)
   267     if ((_curEchoSeq < 0) || (receivedEchoSeq < 0))  
return false;
   268     return receivedEchoSeq != _curEchoSeq;
   272 void  ArnItemNet::resetDirtyValue()
   283 void  ArnItemNet::resetDirtyMode()
   289 bool  ArnItemNet::isDirtyValue()
  const   295 bool  ArnItemNet::isDirtyMode()
  const   301 bool  ArnItemNet::isLeadValueUpdate()
   303     if (_dirty)  
return false;
   310 bool  ArnItemNet::isLeadModeUpdate()
   312     if (_dirtyMode)  
return false;
   319 bool  ArnItemNet::isBlock( quint32 sendId)
   321     return (_blockEcho && (sendId == itemId()));  
   325 void  ArnItemNet::setIniMaster( 
bool iniMaster)
   327     _iniMaster =  iniMaster;
   328     _iniSlave &= !iniMaster;
   332 void  ArnItemNet::setIniSlave( 
bool iniSlave)
   334     _iniSlave   =  iniSlave;
   335     _iniMaster &= !iniSlave;
   339 bool  ArnItemNet::isMasterAtStart()
  const   341     return !_iniSlave && (_iniMaster || isMaster());
   345 void  ArnItemNet::setSyncFlux( 
bool isSyncFlux)
   347     _syncFlux = isSyncFlux;
   351 bool  ArnItemNet::isSyncFlux()
  const   357 void  ArnItemNet::setSaveFlux( 
bool saveFlux)
   359     _saveFlux = saveFlux;
   363 bool  ArnItemNet::isSaveFlux()
  const   369 quint32  ArnItemNet::localUpdateSinceStop()
  const   371     return localUpdateCount() - _updateCountStop;
   375 void  ArnItemNet::onConnectStop()
   377     _updateCountStop = localUpdateCount();
   381 void  ArnItemNet::arnEvent( QEvent* ev, 
bool isAlienThread)
   383     ArnBasicItem::arnEvent( ev, isAlienThread);
   391     if (!_isMonitor)  
return;
   400             sendNewItemMonEvent( e->
path());
   408         xsm.
add(
"path", e->
path()).add(
"mode", ObjectModeToString( e->
mode()));
   419 ArnItemNetEar::ArnItemNetEar( QObject* parent)
   425 void  ArnItemNetEar::customEvent( QEvent* ev)
   434             emit arnTreeCreated( e->
path());
   444                                              << 
"inPath=" << path();
   446             emit arnTreeDestroyed( destroyPath, e->
isGlobal());
   453     return ArnItem::customEvent( ev);
 static int baseType(int setVal=-1)
 
Monitor of server object for client. 
 
Arn::ObjectSyncMode syncMode() const
 
Newly created Arn object. 
 
Implies BiDir and all data is preserved as a stream. 
 
Container class with string representation for serialized data. 
 
Arn::DataType type() const
The type stored in the Arn Data Object 
 
const QString & path() const
 
An Arn object changed mode. 
 
const QString & path() const
 
Arn::ObjectMode mode() const
 
A two way object, typically for validation or pipe. 
 
static bool isArnEvent(int evType)
 
Link flags when accessing an Arn Data Object 
 
ArnLink * startLink() const
 
QByteArray toXString() const
 
Destroy this Arn Data Object when client (tcp/ip) closes. 
 
ArnLink * arnLink() const
 
XStringMap & add(const char *key, const QByteArray &val)
 
Found a present Arn object. 
 
Data is persistent and will be saved. 
 
Handle for an Arn Data Object. 
 
The client is default generator of data.