41 #include <QNetworkReply>    42 #include <QNetworkAccessManager>    43 #include <QVariantMap>    45 #if QT_VERSION >= 0x050000    47 #  include <QQmlParserStatus>    48 #  include <QQmlNetworkAccessManagerFactory>    49 #  include <QQmlEngine>    50 #  define QML_QUICK_TYPE        2    51 #  define QML_ENGINE            QQmlEngine    52 #  define QML_PARSER_STATUS     QQmlParserStatus    53 #  define QML_NETACC_FACTORY    QQmlNetworkAccessManagerFactory    54 #  define QML_LIST_PROPERTY     QQmlListProperty    56 #  include <QtDeclarative>    57 #  include <QDeclarativeParserStatus>    58 #  include <QDeclarativeNetworkAccessManagerFactory>    59 #  include <QDeclarativeEngine>    61 #  define QML_QUICK_TYPE        1    62 #  define QML_ENGINE            QDeclarativeEngine    63 #  define QML_PARSER_STATUS     QDeclarativeParserStatus    64 #  define QML_NETACC_FACTORY    QDeclarativeNetworkAccessManagerFactory    65 #  define QML_LIST_PROPERTY     QDeclarativeListProperty    69 class ArnNetworkAccessManagerFactory;
   206     static void  setup( 
QML_ENGINE* qmlEngine, UseFlags flags = UseFlags::ArnLib);
   208     static ArnQml&  instance();
   215     static QString  arnRootPath();
   228     static void  setArnRootPath( 
const QString& path);
   231     static QObject *constructorArnInterface( 
QML_ENGINE* engine, QJSEngine* scriptEngine);
   241     QString  _arnRootPath;
   242     ArnNetworkAccessManagerFactory*  _arnNetworkAccessManagerFactory;
   291     Q_INTERFACES( QDeclarativeParserStatus)
   293     Q_INTERFACES( QQmlParserStatus)
   297     Q_PROPERTY( QString variantType  READ variantType        WRITE setVariantType      NOTIFY variantTypeChanged)
   299     Q_PROPERTY( 
bool useUuid         READ useUuid            WRITE setUseUuid          NOTIFY dummyNotifier)
   301     Q_PROPERTY( QString path         READ path               WRITE setPath             NOTIFY pathChanged)
   304                                      READ type                                         NOTIFY valueChanged)
   306     Q_PROPERTY( QVariant variant     READ toVariant          WRITE setVariant          NOTIFY valueChanged)
   308     Q_PROPERTY( QString 
string       READ toString           WRITE setValue            NOTIFY valueChanged)
   310     Q_PROPERTY( QByteArray bytes     READ toByteArray        WRITE setValue            NOTIFY valueChanged)
   313     Q_PROPERTY( 
float num            READ toReal             WRITE setValue            NOTIFY valueChanged)
   315     Q_PROPERTY( 
double num           READ toReal             WRITE setValue            NOTIFY valueChanged)
   317     Q_PROPERTY( 
int intNum           READ toInt              WRITE setValue            NOTIFY valueChanged)
   320     Q_PROPERTY( 
bool biDirMode       READ isBiDirMode        WRITE setBiDirMode        NOTIFY dummyNotifier)
   322     Q_PROPERTY( 
bool pipeMode        READ isPipeMode         WRITE setPipeMode         NOTIFY dummyNotifier)
   324     Q_PROPERTY( 
bool saveMode        READ isSaveMode         WRITE setSaveMode         NOTIFY dummyNotifier)
   326     Q_PROPERTY( 
bool masterMode      READ isMaster           WRITE setMaster           NOTIFY dummyNotifier)
   328     Q_PROPERTY( 
bool autoDestroyMode READ isAutoDestroy      WRITE setAutoDestroy      NOTIFY dummyNotifier)
   330     Q_PROPERTY( 
bool atomicOpProvider
   331                                      READ isAtomicOpProvider WRITE setAtomicOpProvider NOTIFY dummyNotifier)
   333     Q_PROPERTY( 
bool ignoreSameValue READ isIgnoreSameValue  WRITE setIgnoreSameValue  NOTIFY dummyNotifier)
   335     Q_PROPERTY( 
int delay            READ delay              WRITE setDelay            NOTIFY dummyNotifier)
   342     void  setBits( 
int mask, 
int value)
   355     void  addNum( 
float value)
   375     explicit ArnItemQml( QObject* parent = arnNullptr);
   377     QString  variantType()  
const;
   378     void  setVariantType( 
const QString& typeName);
   380     QString  path()  
const;
   385     void  setPath( 
const QString& path);
   387     void  setVariant( 
const QVariant& value);
   389     void  setBiDirMode( 
bool isBiDirMode);
   390     void  setPipeMode( 
bool isPipeMode);
   391     void  setMaster( 
bool isMaster);
   392     void  setAutoDestroy( 
bool isAutoDestroy);
   393     void  setSaveMode( 
bool isSaveMode);
   394     void  setAtomicOpProvider( 
bool isAtomicOpPv);
   398     bool  useUuid()  
const;
   399     void  setUseUuid( 
bool useUuid);
   401     virtual void  classBegin();
   402     virtual void  componentComplete();
   407     void  variantTypeChanged();
   408     void  dummyNotifier();
   411     virtual void  itemUpdated( 
const ArnLinkHandle& handleData, 
const QByteArray* value = arnNullptr);
   412     virtual void  itemCreatedBelow( 
const QString& path);
   413     virtual void  itemModeChangedBelow( 
const QString& path, uint linkId, 
Arn::ObjectMode mode);
   414     virtual void  timerEvent( QTimerEvent* ev);
   453     Q_INTERFACES( QDeclarativeParserStatus)
   455     Q_INTERFACES( QQmlParserStatus)
   472     void  setClientId( const QString& 
id);
   477     virtual 
void classBegin();
   478     virtual 
void componentComplete();
   482     void  dummyNotifier();
   485     virtual QString  outPathConvert( const QString& 
path);
   486     virtual QString  inPathConvert( const QString& 
path);
   556     Q_INTERFACES( QDeclarativeParserStatus)
   558     Q_INTERFACES( QQmlParserStatus)
   562     Q_PROPERTY( QString pipePath    READ pipePath           WRITE setPipePath        NOTIFY pathChanged)
   564     Q_PROPERTY( 
Mode mode           READ mode               WRITE setMode            NOTIFY dummyNotifier)
   566     Q_PROPERTY( QObject* receiver   READ receiver           WRITE setReceiver        NOTIFY dummyNotifier)
   571     Q_PROPERTY( 
int heartBeatSend   READ getHeartBeatSend   WRITE setHeartBeatSend   NOTIFY dummyNotifier)
   576     Q_PROPERTY( 
int heartBeatCheck  READ getHeartBeatCheck  WRITE setHeartBeatCheck  NOTIFY dummyNotifier)
   598         UuidAutoDestroy = int(UuidPipe) | int(AutoDestroy)
   608     explicit ArnSapiQml( QObject* parent = arnNullptr);
   610     void  setPipePath( 
const QString& 
path);
   611     QString  pipePath() 
const;
   615     void  setMode( Mode m)
   618     virtual void classBegin();
   619     virtual void componentComplete();
   623     void  dummyNotifier();
   630     QString  _providerPrefix;
   631     QString  _requesterPrefix;
   642     Q_INTERFACES( QDeclarativeParserStatus)
   644     Q_INTERFACES( QQmlParserStatus)
   648     Q_PROPERTY( QString xstring      READ toXStringString    WRITE fromXString         NOTIFY dummyNotifier)
   650     Q_PROPERTY( 
int size             READ size                                         NOTIFY dummyNotifier)
   664     {XStringMap::clear( 
true);}
   666     int  indexOf( 
const QString& key, 
int from = 0)
  const   667     {
return XStringMap::indexOf( key, from);}
   670     {
return XStringMap::indexOfValue( value, from);}
   672     QObject*  
add( 
const QString& key, 
const QString& val)
   673     {XStringMap::add( key, val); 
return this;}
   675     QObject*  add( QObject* other);
   677     QObject*  
set( 
int i, 
const QString& val)
   678     {XStringMap::set( i, val); 
return this;}
   680     QObject*  
set( 
const QString& key, 
const QString& val)
   681     {XStringMap::set( key, val); 
return this;}
   683     QString  
key( 
int i, 
const QString& def = QString())
  const   684     {
return XStringMap::keyString( i, def);}
   686     QString  
key( 
const QString& value, 
const QString& def = QString())
  const   687     {
return XStringMap::keyString( value, def);}
   689     QString  
value( 
int i, 
const QString& def = QString())
  const   690     {
return XStringMap::valueString( i, def);}
   692     QString  
value( 
const QString& key, 
const QString& def = QString())
  const   693     {
return XStringMap::valueString( key, def);}
   695     QObject*  
remove( 
int index)
   696     {XStringMap::remove( index); 
return this;}
   698     QObject*  
remove( 
const QString& key)
   699     {XStringMap::remove( key); 
return this;}
   702     {XStringMap::removeValue( val); 
return this;}
   705     {XStringMap::setEmptyKeysToValue();}
   708     {
return XStringMap::keys();}
   711     {
return XStringMap::values();}
   714     {
return XStringMap::toVariantMap( 
true);}
   720     virtual void  classBegin();
   721     virtual void  componentComplete();
   724     void  dummyNotifier();
   739     Q_PROPERTY( 
int quickTypeRun  READ quickTypeRun)
   742     QVariantMap  xstringToEnum( 
const QString& xstring);
   746     explicit QmlMSys( QObject* parent = arnNullptr);
   755 class ArnNetworkReply : 
public QNetworkReply
   759     explicit ArnNetworkReply( QObject* parent = arnNullptr);
   761     void  setOperation( QNetworkAccessManager::Operation operation)
   762     { QNetworkReply::setOperation( operation);}
   764     void  setRequest( 
const QNetworkRequest& request)
   765     { QNetworkReply::setRequest( request);}
   767     void  setUrl( 
const QUrl& url)
   768     { QNetworkReply::setUrl( url);}
   770     bool  isFinished()  
const;
   771     qint64  bytesAvailable()  
const;
   772     bool  isSequential()  
const;
   775     void  setup( 
const QString& 
path);
   776     QByteArray  data()  
const;
   777     void  setData( 
const QByteArray& data);
   780     virtual void  abort();
   781     virtual qint64  readData( 
char *data, qint64 maxlen);
   796 class ArnNetworkAccessManager : 
public QNetworkAccessManager
   800     explicit ArnNetworkAccessManager( QObject* parent = arnNullptr);
   803     virtual QNetworkReply*  createRequest( Operation op, 
const QNetworkRequest &request, QIODevice *outgoingData);
   814     virtual QNetworkAccessManager*  create( QObject *parent);
 Mode mode() const
Get the mode. 
 
bool isHeartBeatOk() const
Get the state of heart beat. 
 
QString value(const QString &key, const QString &def=QString()) const
 
void addMode(ArnInterface::ObjectMode mode)
Add general mode settings for this Arn Data Object 
 
When calling out, uses named argument e.g "myFunc count=123". 
 
QObject * removeValue(const QString &val)
 
QMultiMap< QString, QVariant > MQVariantMap
 
MQVariantMap toMap() const
 
Container class with string representation for serialized data. 
 
void setMonitorPath(const QString &path, ArnClient *client=arnNullptr)
Set the path to be monitored. 
 
Arn::DataType type() const
The type stored in the Arn Data Object 
 
Arn::ObjectMode getMode() const
Use with care, link must be "referenced" before use, otherwise it might have been deleted...
 
#define MQ_DECLARE_FLAGS(FEStruct)
Flags. 
 
int indexOf(const QString &key, int from=0) const
 
int toInt(bool *isOk=arnNullptr) const
 
QString value(int i, const QString &def=QString()) const
 
QString key(int i, const QString &def=QString()) const
 
When receiver method missing, send defaultCall() signal instead of error. 
 
DataType
Data type of an Arn Data Object 
 
QObject * add(const QString &key, const QString &val)
 
QString monitorPath() const
Get the monitored path 
 
#define QML_PARSER_STATUS
 
int indexOfValue(const QString &value, int from=0) const
 
Check sequence order information from pipe. Can generate signal outOfSequence(). 
 
void addValue(int value)
AtomicOp adds an integer to an Arn Data Object 
 
#define QML_NETACC_FACTORY
 
void setBits(int mask, int value, int ignoreSame=Arn::SameValue::DefaultAction)
AtomicOp assign an integer to specified bits in an Arn Data Object 
 
void setEmptyKeysToValue()
 
ObjectMode
General global mode of an Arn Data Object 
 
Provider side (opposed to requester) 
 
#define MQ_DECLARE_OPERATORS_FOR_FLAGS(FEStruct)
 
QString path(Arn::NameF nameF=Arn::NameF::EmptyOk) const
Path of the Arn Data Object 
 
void addMode(Arn::ObjectMode mode)
Add general mode settings for this Arn Data Object 
 
When calling out, uses named argument with type e.g "myFunc count:int=123". 
 
Send sequence order information to pipe. 
 
Use AutoDestroy for the pipe, i.e. it is closed when tcp/ip is broken. 
 
QString key(const QString &value, const QString &def=QString()) const
 
Use an unique uuid in the pipe name. 
 
ArnInterface::ObjectMode getMode() const
 
If guarantied no default arguments, full member name overload is ok. 
 
#define ARNLIBSHARED_EXPORT
 
void reStart()
Restart the monitor. 
 
A client remote monitor to detect changes at server. 
 
QString clientId() const
Get the id name of the used client 
 
void addNum(double value)
AtomicOp adds an ARNREAL to an Arn Data Object 
 
void addIntNum(int value)
AtomicOp adds an integer to an Arn Data Object 
 
Handle for an Arn Data Object. 
 
QStringList values() const