QDirIterator refactoring
[qt-netbsd.git] / src / script / qscriptvalueimplfwd_p.h
blobc30b32a9f5f928014e16e6aaca7524a76c3ebc31
1 /****************************************************************************
2 **
3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
4 ** Contact: Nokia Corporation (qt-info@nokia.com)
5 **
6 ** This file is part of the QtScript module of the Qt Toolkit.
7 **
8 ** $QT_BEGIN_LICENSE:LGPL$
9 ** No Commercial Usage
10 ** This file contains pre-release code and may not be distributed.
11 ** You may use this file in accordance with the terms and conditions
12 ** contained in the either Technology Preview License Agreement or the
13 ** Beta Release License Agreement.
15 ** GNU Lesser General Public License Usage
16 ** Alternatively, this file may be used under the terms of the GNU Lesser
17 ** General Public License version 2.1 as published by the Free Software
18 ** Foundation and appearing in the file LICENSE.LGPL included in the
19 ** packaging of this file. Please review the following information to
20 ** ensure the GNU Lesser General Public License version 2.1 requirements
21 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
23 ** In addition, as a special exception, Nokia gives you certain
24 ** additional rights. These rights are described in the Nokia Qt LGPL
25 ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
26 ** package.
28 ** GNU General Public License Usage
29 ** Alternatively, this file may be used under the terms of the GNU
30 ** General Public License version 3.0 as published by the Free Software
31 ** Foundation and appearing in the file LICENSE.GPL included in the
32 ** packaging of this file. Please review the following information to
33 ** ensure the GNU General Public License version 3.0 requirements will be
34 ** met: http://www.gnu.org/copyleft/gpl.html.
36 ** If you are unsure which license is appropriate for your use, please
37 ** contact the sales department at http://www.qtsoftware.com/contact.
38 ** $QT_END_LICENSE$
40 ****************************************************************************/
42 #ifndef QSCRIPTVALUEIMPLFWD_P_H
43 #define QSCRIPTVALUEIMPLFWD_P_H
45 #include "qscriptglobals_p.h"
47 #ifndef QT_NO_SCRIPT
49 #include "qscriptvalue.h"
51 #include <QtCore/qstring.h>
52 #include <QtCore/qlist.h>
54 QT_BEGIN_NAMESPACE
57 // W A R N I N G
58 // -------------
60 // This file is not part of the Qt API. It exists purely as an
61 // implementation detail. This header file may change from version to
62 // version without notice, or even be removed.
64 // We mean it.
67 class QScriptValueImpl;
68 typedef QList<QScriptValueImpl> QScriptValueImplList;
70 class QScriptClassInfo;
71 class QScriptObject;
72 class QScriptObjectData;
73 class QScriptNameIdImpl;
74 class QScriptFunction;
75 class QScriptEnginePrivate;
77 namespace QScript
79 class Member;
82 class QScriptValueImpl
84 public:
85 enum TypeHint {
86 NoTypeHint,
87 NumberTypeHint,
88 StringTypeHint
91 inline QScriptValueImpl();
92 inline QScriptValueImpl(QScriptValue::SpecialValue val);
93 inline QScriptValueImpl(bool val);
94 inline QScriptValueImpl(int val);
95 inline QScriptValueImpl(uint val);
96 inline QScriptValueImpl(qsreal val);
97 inline QScriptValueImpl(QScriptEnginePrivate *engine, const QString &val);
98 inline QScriptValueImpl(QScriptNameIdImpl *val);
100 inline QScript::Type type() const;
101 inline QScriptEnginePrivate *engine() const;
102 inline QScriptClassInfo *classInfo() const;
103 inline void setClassInfo(QScriptClassInfo *cls);
104 inline QScriptNameIdImpl *stringValue() const;
105 inline QScriptObject *objectValue() const;
106 inline void incr();
107 inline void decr();
109 inline void invalidate();
110 inline bool isValid() const;
111 inline bool isBoolean() const;
112 inline bool isNumber() const;
113 inline bool isString() const;
114 inline bool isFunction() const;
115 inline bool isObject() const;
116 inline bool isUndefined() const;
117 inline bool isNull() const;
118 inline bool isVariant() const;
119 inline bool isQObject() const;
120 inline bool isQMetaObject() const;
121 inline bool isReference() const;
123 inline bool isError() const;
124 inline bool isArray() const;
125 inline bool isDate() const;
126 inline bool isRegExp() const;
128 inline QString toString() const;
129 inline qsreal toNumber() const;
130 inline bool toBoolean() const;
131 inline qsreal toInteger() const;
132 inline qint32 toInt32() const;
133 inline quint32 toUInt32() const;
134 inline quint16 toUInt16() const;
135 QVariant toVariant() const;
136 inline QObject *toQObject() const;
137 inline const QMetaObject *toQMetaObject() const;
138 inline QDateTime toDateTime() const;
139 #ifndef QT_NO_REGEXP
140 inline QRegExp toRegExp() const;
141 #endif
143 inline QVariant &variantValue() const;
144 inline void setVariantValue(const QVariant &v);
146 bool instanceOf(const QScriptValueImpl &value) const;
147 bool instanceOf_helper(const QScriptValueImpl &value) const;
149 bool implementsHasInstance() const;
150 bool hasInstance(const QScriptValueImpl &value) const;
152 inline QScriptValueImpl prototype() const;
153 inline void setPrototype(const QScriptValueImpl &prototype);
155 inline QScriptValueImpl property(QScriptNameIdImpl *nameId,
156 const QScriptValue::ResolveFlags &mode = QScriptValue::ResolvePrototype) const;
157 void setProperty(QScriptNameIdImpl *nameId, const QScriptValueImpl &value,
158 const QScriptValue::PropertyFlags &flags = QScriptValue::KeepExistingFlags);
160 inline QScriptValueImpl property(const QString &name,
161 const QScriptValue::ResolveFlags &mode = QScriptValue::ResolvePrototype) const;
162 inline void setProperty(const QString &name, const QScriptValueImpl &value,
163 const QScriptValue::PropertyFlags &flags = QScriptValue::KeepExistingFlags);
165 inline QScriptValueImpl property(quint32 arrayIndex,
166 const QScriptValue::ResolveFlags &mode = QScriptValue::ResolvePrototype) const;
167 inline void setProperty(quint32 arrayIndex, const QScriptValueImpl &value,
168 const QScriptValue::PropertyFlags &flags = QScriptValue::KeepExistingFlags);
170 inline QScriptValue::PropertyFlags propertyFlags(const QString &name,
171 const QScriptValue::ResolveFlags &mode = QScriptValue::ResolvePrototype) const;
172 inline QScriptValue::PropertyFlags propertyFlags(QScriptNameIdImpl *nameId,
173 const QScriptValue::ResolveFlags &mode = QScriptValue::ResolvePrototype) const;
175 inline bool deleteProperty(QScriptNameIdImpl *nameId,
176 const QScriptValue::ResolveFlags &mode = QScriptValue::ResolveLocal);
178 inline QScriptValueImpl call(const QScriptValueImpl &thisObject = QScriptValueImpl(),
179 const QScriptValueImplList &args = QScriptValueImplList());
180 inline QScriptValueImpl call(const QScriptValueImpl &thisObject,
181 const QScriptValueImpl &arguments);
182 inline QScriptValueImpl construct(const QScriptValueImplList &args = QScriptValueImplList());
183 inline QScriptValueImpl construct(const QScriptValueImpl &arguments);
185 inline void mark(int) const;
186 bool isMarked(int) const;
188 inline QScriptValueImpl internalValue() const;
189 inline void setInternalValue(const QScriptValueImpl &internalValue);
191 inline void setQObjectValue(QObject *object);
193 inline QScriptObjectData *objectData() const;
194 inline void setObjectData(QScriptObjectData *data);
195 void destroyObjectData();
197 inline void createMember(QScriptNameIdImpl *nameId,
198 QScript::Member *member, uint flags); // ### remove me
199 inline int memberCount() const;
200 inline void member(int index, QScript::Member *member) const;
202 inline bool resolve(QScriptNameIdImpl *nameId, QScript::Member *member,
203 QScriptValueImpl *object, QScriptValue::ResolveFlags mode,
204 QScript::AccessMode access) const;
205 bool resolve_helper(QScriptNameIdImpl *nameId, QScript::Member *member,
206 QScriptValueImpl *object, QScriptValue::ResolveFlags mode,
207 QScript::AccessMode access) const;
208 inline void get(const QScript::Member &member, QScriptValueImpl *out) const;
209 inline void get_helper(const QScript::Member &member, QScriptValueImpl *out) const;
210 inline void get(QScriptNameIdImpl *nameId, QScriptValueImpl *out);
211 inline void put(const QScript::Member &member, const QScriptValueImpl &value);
212 inline void removeMember(const QScript::Member &member);
214 inline QScriptValueImpl scope() const;
215 inline void setScope(const QScriptValueImpl &scope);
217 inline QScriptFunction *toFunction() const;
219 bool detectedCycle() const;
221 QScript::Type m_type;
222 union {
223 bool m_bool_value;
224 int m_int_value;
225 qsreal m_number_value;
226 void *m_ptr_value;
227 QScriptObject *m_object_value;
228 QScriptNameIdImpl *m_string_value;
229 QString *m_lazy_string_value;
233 QT_END_NAMESPACE
235 #endif // QT_NO_SCRIPT
237 #endif // QSCRIPTVALUEIMPLFWD_P_H