42 #ifdef ARNUSE_SCRIPTJS 47 #define ARN_JSENGINE QJSEngine 48 #define ARN_JSVALUE QJSValue 49 #define ARN_JSVALUE_LIST QJSValueList 50 #define ARN_JSCONTEXT QJSContext 52 #include <QScriptable> 53 #include <QScriptValue> 54 #define ARN_JSENGINE QScriptEngine 55 #define ARN_JSVALUE QScriptValue 56 #define ARN_JSVALUE_LIST QScriptValueList 57 #define ARN_JSCONTEXT QScriptContext 66 #ifdef ARNUSE_SCRIPTJS 71 Q_PROPERTY( QString variantType READ variantType WRITE setVariantType)
72 Q_PROPERTY( QString defaultType READ variantType WRITE setVariantType)
74 Q_PROPERTY(
bool useUuid READ useUuid WRITE setUseUuid)
76 Q_PROPERTY( QString path READ path WRITE setPath)
81 Q_PROPERTY( QVariant variant READ toVariant WRITE setVariant)
82 Q_PROPERTY( QVariant value READ toVariant WRITE setVariant)
84 Q_PROPERTY( QString
string READ toString WRITE setValue)
86 Q_PROPERTY( QByteArray bytes READ toByteArray WRITE setValue)
89 Q_PROPERTY(
float num READ toReal WRITE setValue)
91 Q_PROPERTY(
double num READ toReal WRITE setValue)
93 Q_PROPERTY(
int intNum READ toInt WRITE setValue)
96 Q_PROPERTY(
bool biDirMode READ isBiDirMode WRITE setBiDirMode)
98 Q_PROPERTY(
bool pipeMode READ isPipeMode WRITE setPipeMode)
100 Q_PROPERTY(
bool saveMode READ isSaveMode WRITE setSaveMode)
102 Q_PROPERTY(
bool masterMode READ isMaster WRITE setMaster)
103 Q_PROPERTY(
bool smMaster READ isMaster WRITE setMaster)
105 Q_PROPERTY(
bool autoDestroyMode READ isAutoDestroy WRITE setAutoDestroy)
106 Q_PROPERTY(
bool smAutoDestroy READ isAutoDestroy WRITE setAutoDestroy)
108 Q_PROPERTY(
bool atomicOpProvider
109 READ isAtomicOpProvider WRITE setAtomicOpProvider)
111 Q_PROPERTY(
bool ignoreSameValue READ isIgnoreSameValue WRITE setIgnoreSameValue)
113 Q_PROPERTY(
int delay READ delay WRITE setDelay)
114 Q_PROPERTY(
bool templateMode READ isTemplate WRITE setTemplate)
115 Q_PROPERTY(
bool smTemplate READ isTemplate WRITE setTemplate)
121 void setBits(
int mask,
int value)
127 void addIntNum(
int value)
134 void addNum(
float value)
136 void addNum(
double value)
141 Q_INVOKABLE ArnItemJs( QObject* parent = arnNullptr);
142 Q_INVOKABLE ArnItemJs(
const QString& path, QObject* parent = arnNullptr);
143 Q_INVOKABLE ArnItemJs(
const QJSValue& itemTemplate,
const QString& path, QObject* parent = arnNullptr);
145 QString variantType()
const;
146 void setVariantType(
const QString& typeName);
148 QString
path()
const;
153 void setPath(
const QString& path);
155 void setVariant(
const QVariant& value);
164 bool useUuid()
const;
165 void setUseUuid(
bool useUuid);
170 void changedNum(
float value);
172 void changedNum(
double value);
174 void changedString(
const QString& value);
178 const ArnItem& arnItemFromJsValue(
const QJSValue& jsValue, QObject& defParent);
181 int _variantType = 0;
182 bool _useUuid =
false;
190 Q_PROPERTY( QString clientId READ clientId WRITE setClient)
192 Q_PROPERTY( QString monitorPath READ monitorPath WRITE setMonitorPath)
200 Q_INVOKABLE ArnMonitorJs( QObject* parent = arnNullptr);
207 Q_PROPERTY( QString stateName READ stateName WRITE setStateName)
208 Q_PROPERTY(
int stateId READ stateId WRITE setStateId)
210 void advertise(
const QString& serviceName);
213 Q_INVOKABLE ArnDepOfferJs( QObject* parent = arnNullptr);
221 void add(
const QString& serviceName,
int stateId = -1);
222 void add(
const QString& serviceName,
const QString& stateName);
227 Q_INVOKABLE ArnDepJs( QObject* parent = arnNullptr);
233 friend class ArnJsGlobal;
236 explicit ArnScript( QObject* parent = arnNullptr);
239 void addObject(
const QString&
id, QObject* obj);
241 bool evaluate(
const QByteArray& script,
const QString& idName,
const QString& typeName = QString());
242 bool evaluateFile(
const QString& fileName);
246 QString idName()
const;
247 void setInterruptedText(
const QString& interruptedText);
250 void errorText( QString txt);
263 bool doJsResult(
const ARN_JSVALUE& jsResult,
const QString& typeName = QString());
266 QString _interruptedText;
270 class ArnJsGlobal :
public QObject
274 explicit ArnJsGlobal(
ArnScript& arnScript, QObject* parent = arnNullptr);
277 void print(
const QString& txt);
284 class ArnItemScr :
public ArnItem 288 ArnItemScr( QObject* parent = arnNullptr);
289 ArnItemScr(
const QString& path, QObject* parent = arnNullptr);
290 ArnItemScr(
const ArnItem& itemTemplate,
const QString& path, QObject* parent = arnNullptr);
291 virtual ~ArnItemScr();
298 void changedNum(
float value);
300 void changedNum(
double value);
302 void changedString(
const QString& value);
312 Q_PROPERTY( QString defaultType READ defaultType WRITE setDefaultType)
313 Q_PROPERTY( QString path READ path WRITE setPath)
314 Q_PROPERTY( QVariant value READ value WRITE setValue)
315 Q_PROPERTY( QString
string READ
string WRITE setString)
317 Q_PROPERTY(
bool pipeMode READ isPipeMode WRITE setPipeMode)
318 Q_PROPERTY(
bool saveMode READ isSaveMode WRITE setSaveMode)
319 Q_PROPERTY(
bool smMaster READ isMaster WRITE setMaster)
320 Q_PROPERTY(
bool smAutoDestroy READ isAutoDestroy WRITE setAutoDestroy)
321 Q_PROPERTY(
bool smTemplate READ isTemplate WRITE setTemplate)
323 ArnItemProto(
ArnScript* parent = arnNullptr);
325 QString defaultType()
const;
326 void setDefaultType(
const QString& typeName);
327 QString path()
const;
328 void setPath(
const QString& path);
329 QVariant value()
const;
330 void setValue(
const QVariant& value);
331 QString string()
const;
332 void setString(
const QString& value);
333 bool isPipeMode()
const;
334 void setPipeMode(
bool isPipeMode);
335 bool isMaster()
const;
336 void setMaster(
bool isMaster);
337 bool isAutoDestroy()
const;
338 void setAutoDestroy(
bool isAutoDestroy);
339 bool isSaveMode()
const;
340 void setSaveMode(
bool isSaveMode);
341 bool isTemplate()
const;
342 void setTemplate(
bool isTemplate);
344 static QScriptValue getSetNum( QScriptContext* context, QScriptEngine* engine);
346 static QScriptValue constructor( QScriptContext* context, QScriptEngine* engine);
353 Q_PROPERTY( QString clientId READ clientId WRITE setClientId)
354 Q_PROPERTY( QString monitorPath READ monitorPath WRITE setMonitorPath)
359 ArnMonitorProto(
ArnScript* parent = arnNullptr);
360 void setClientId(
const QString&
id);
361 QString clientId()
const;
362 void setMonitorPath(
const QString& name);
363 QString monitorPath()
const;
365 static QScriptValue constructor( QScriptContext* context, QScriptEngine* engine);
372 Q_PROPERTY( QString stateName READ stateName WRITE setStateName)
373 Q_PROPERTY(
int stateId READ stateId WRITE setStateId)
375 void advertise(
const QString& serviceName);
378 ArnDepOfferProto(
ArnScript* parent = arnNullptr);
379 void setStateName(
const QString& name);
380 QString stateName()
const;
381 void setStateId(
int id);
384 static QScriptValue constructor( QScriptContext* context, QScriptEngine* engine);
392 void add(
const QString& serviceName,
int stateId = -1);
393 void add(
const QString& serviceName,
const QString& stateName);
394 void setMonitorName(
const QString& name);
398 ArnDepProto(
ArnScript* parent = arnNullptr);
400 static QScriptValue constructor( QScriptContext* context, QScriptEngine* engine);
409 explicit ArnScript( QObject* parent = arnNullptr);
410 ArnScript( QScriptEngine* engine, QObject* parent = arnNullptr);
411 QScriptEngine& engine()
const;
412 void addObject(
const QString&
id, QObject* obj);
414 bool evaluate(
const QByteArray& script,
const QString& idName,
const QString& typeName = QString());
415 bool evaluateFile(
const QString& fileName);
419 bool logUncaughtError( QScriptValue& scriptValue,
const QString& typeName = QString());
420 QString idName()
const;
422 void setInterruptedText(
const QString& interruptedText);
425 void errorText( QString txt);
430 void doSignalException(
const QScriptValue& exception);
434 static QScriptValue printFunction( QScriptContext* context, QScriptEngine* engine);
443 void init( QScriptEngine* engine);
449 #endif // ARNSCRIPT_HPP void reStart()
The monitor is restarted.
void add(const QString &serviceName, int stateId=-1)
Add a dependency for a service
ArnItem & setAutoDestroy()
Set client session sync mode as AutoDestroy for this ArnItem.
Class for advertising that a service is available.
ArnItem & setPipeMode()
Set general mode as Pipe for this Arn Data Object
Arn::DataType type() const
The type stored in the Arn Data Object
ArnItem & setMaster()
Set client session sync mode as Master for this ArnItem.
DataType
Data type of an Arn Data Object
ArnItem & setBiDirMode()
Set general mode as Bidirectional for this Arn Data Object
void setAtomicOpProvider()
Set this Arn Data Object as Atomic Operator Provider
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 setMonitorName(const QString &name)
Set an optional monitor name for debugging.
Class for setting up dependencis to needed services.
Class for connecting to an Arn Server.
ArnItem & setSaveMode()
Set general mode as Save for this 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
QString path(Arn::NameF nameF=Arn::NameF::EmptyOk) const
Path of the Arn Data Object
ArnDepOfferProto * _depOfferProto
void advertise(const QString &serviceName)
Advertise an available service
ArnMonitorProto * _monitorProto
#define ARNLIBSHARED_EXPORT
int toInt(bool *isOk=arnNullptr) const
ArnItemProto * _itemProto
A client remote monitor to detect changes at server.
Handle for an Arn Data Object.
void startMonitor()
Starting the dependency monitor.