QDaq  0.2.6
Qt-based Data Aqcuisition
 All Classes Functions Variables Typedefs Enumerations Enumerator Properties Groups Pages
bytearrayclass.h
1 #ifndef BYTEARRAYCLASS_H
2 #define BYTEARRAYCLASS_H
3 
4 #include <QtCore/QObject>
5 #include <QtScript/QScriptClass>
6 #include <QtScript/QScriptString>
7 
8 QT_BEGIN_NAMESPACE
9 class QScriptContext;
10 QT_END_NAMESPACE
11 
12 /*
13  * ByteArray class definition from Qt examples
14  */
15 class ByteArrayClass : public QObject, public QScriptClass
16 {
17  Q_OBJECT
18 public:
19  ByteArrayClass(QScriptEngine *engine);
20  ~ByteArrayClass();
21 
22  QScriptValue constructor();
23 
24  QScriptValue newInstance(int size = 0);
25  QScriptValue newInstance(const QByteArray &ba);
26 
27  QueryFlags queryProperty(const QScriptValue &object,
28  const QScriptString &name,
29  QueryFlags flags, uint *id);
30 
31  QScriptValue property(const QScriptValue &object,
32  const QScriptString &name, uint id);
33 
34  void setProperty(QScriptValue &object, const QScriptString &name,
35  uint id, const QScriptValue &value);
36 
37  QScriptValue::PropertyFlags propertyFlags(
38  const QScriptValue &object, const QScriptString &name, uint id);
39 
40  QScriptClassPropertyIterator *newIterator(const QScriptValue &object);
41 
42  QString name() const;
43 
44  QScriptValue prototype() const;
45 
46 private:
47  static QScriptValue construct(QScriptContext *ctx, QScriptEngine *eng);
48 
49  static QScriptValue toScriptValue(QScriptEngine *eng, const QByteArray &ba);
50  static void fromScriptValue(const QScriptValue &obj, QByteArray &ba);
51 
52  void resize(QByteArray &ba, int newSize);
53 
54  QScriptString length;
55  QScriptValue proto;
56  QScriptValue ctor;
57 };
58 
59 #endif