summaryrefslogtreecommitdiff
path: root/src/script/bridge/qscriptqobject_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/script/bridge/qscriptqobject_p.h')
-rw-r--r--src/script/bridge/qscriptqobject_p.h322
1 files changed, 0 insertions, 322 deletions
diff --git a/src/script/bridge/qscriptqobject_p.h b/src/script/bridge/qscriptqobject_p.h
deleted file mode 100644
index 7e62540..0000000
--- a/src/script/bridge/qscriptqobject_p.h
+++ /dev/null
@@ -1,322 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtScript module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL-ONLY$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QSCRIPTQOBJECT_P_H
-#define QSCRIPTQOBJECT_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include "qscriptobject_p.h"
-
-#include "qscriptengine.h"
-#include <QtCore/qpointer.h>
-
-#include "InternalFunction.h"
-
-QT_BEGIN_NAMESPACE
-
-namespace QScript
-{
-
-enum AttributeExtension {
- // ### Make sure there's no conflict with JSC::Attribute
- QObjectMemberAttribute = 1 << 12
-};
-
-class QObjectDelegate : public QScriptObjectDelegate
-{
-public:
- struct Data
- {
- QPointer<QObject> value;
- QScriptEngine::ValueOwnership ownership;
- QScriptEngine::QObjectWrapOptions options;
-
- QHash<QByteArray, JSC::JSValue> cachedMembers;
-
- Data(QObject *o, QScriptEngine::ValueOwnership own,
- QScriptEngine::QObjectWrapOptions opt)
- : value(o), ownership(own), options(opt) {}
- };
-
- QObjectDelegate(
- QObject *object, QScriptEngine::ValueOwnership ownership,
- const QScriptEngine::QObjectWrapOptions &options);
- ~QObjectDelegate();
-
- virtual Type type() const;
-
- virtual bool getOwnPropertySlot(QScriptObject*, JSC::ExecState*,
- const JSC::Identifier& propertyName,
- JSC::PropertySlot&);
- virtual bool getOwnPropertyDescriptor(QScriptObject*, JSC::ExecState*,
- const JSC::Identifier& propertyName,
- JSC::PropertyDescriptor&);
-
- virtual void put(QScriptObject*, JSC::ExecState* exec,
- const JSC::Identifier& propertyName,
- JSC::JSValue, JSC::PutPropertySlot&);
- virtual bool deleteProperty(QScriptObject*, JSC::ExecState*,
- const JSC::Identifier& propertyName);
- virtual void getOwnPropertyNames(QScriptObject*, JSC::ExecState*,
- JSC::PropertyNameArray&,
- JSC::EnumerationMode mode = JSC::ExcludeDontEnumProperties);
- virtual void markChildren(QScriptObject*, JSC::MarkStack& markStack);
- virtual bool compareToObject(QScriptObject*, JSC::ExecState*, JSC::JSObject*);
-
- inline QObject *value() const { return data->value; }
- inline void setValue(QObject* value) { data->value = value; }
-
- inline QScriptEngine::ValueOwnership ownership() const
- { return data->ownership; }
- inline void setOwnership(QScriptEngine::ValueOwnership ownership)
- { data->ownership = ownership; }
-
- inline QScriptEngine::QObjectWrapOptions options() const
- { return data->options; }
- inline void setOptions(QScriptEngine::QObjectWrapOptions options)
- { data->options = options; }
-
-protected:
- Data *data;
-};
-
-class QObjectPrototypeObject : public QObject
-{
- Q_OBJECT
-public:
- QObjectPrototypeObject(QObject *parent = 0)
- : QObject(parent) { }
- ~QObjectPrototypeObject() { }
-};
-
-class QObjectPrototype : public QScriptObject
-{
-public:
- QObjectPrototype(JSC::ExecState*, WTF::PassRefPtr<JSC::Structure>,
- JSC::Structure* prototypeFunctionStructure);
-};
-
-class QObjectConnectionManager;
-
-struct QObjectWrapperInfo
-{
- QObjectWrapperInfo(QScriptObject *obj,
- QScriptEngine::ValueOwnership own,
- const QScriptEngine::QObjectWrapOptions &opt)
- : object(obj), ownership(own), options(opt) {}
-
- QScriptObject *object;
- QScriptEngine::ValueOwnership ownership;
- QScriptEngine::QObjectWrapOptions options;
-};
-
-class QObjectData // : public QObjectUserData
-{
-public:
- QObjectData(QScriptEnginePrivate *engine);
- ~QObjectData();
-
- bool addSignalHandler(QObject *sender,
- int signalIndex,
- JSC::JSValue receiver,
- JSC::JSValue slot,
- JSC::JSValue senderWrapper,
- Qt::ConnectionType type);
- bool removeSignalHandler(QObject *sender,
- int signalIndex,
- JSC::JSValue receiver,
- JSC::JSValue slot);
-
- QScriptObject *findWrapper(QScriptEngine::ValueOwnership ownership,
- const QScriptEngine::QObjectWrapOptions &options) const;
- void registerWrapper(QScriptObject *wrapper,
- QScriptEngine::ValueOwnership ownership,
- const QScriptEngine::QObjectWrapOptions &options);
-
- void mark(JSC::MarkStack&);
-
-private:
- QScriptEnginePrivate *engine;
- QScript::QObjectConnectionManager *connectionManager;
- QList<QScript::QObjectWrapperInfo> wrappers;
-};
-
-class QtFunction: public JSC::InternalFunction
-{
-public:
- // work around CELL_SIZE limitation
- struct Data
- {
- JSC::JSValue object;
- int initialIndex;
- bool maybeOverloaded;
-
- Data(JSC::JSValue o, int ii, bool mo)
- : object(o), initialIndex(ii), maybeOverloaded(mo) {}
- };
-
- QtFunction(JSC::JSValue object, int initialIndex, bool maybeOverloaded,
- JSC::JSGlobalData*, WTF::PassRefPtr<JSC::Structure>, const JSC::Identifier&);
- virtual ~QtFunction();
-
- virtual JSC::CallType getCallData(JSC::CallData&);
- virtual void markChildren(JSC::MarkStack&);
-
- virtual const JSC::ClassInfo* classInfo() const { return &info; }
- static const JSC::ClassInfo info;
-
- static JSC::JSValue JSC_HOST_CALL call(JSC::ExecState*, JSC::JSObject*,
- JSC::JSValue, const JSC::ArgList&);
-
- JSC::JSValue execute(JSC::ExecState *exec, JSC::JSValue thisValue,
- const JSC::ArgList &args);
-
- QScriptObject *wrapperObject() const;
- QObject *qobject() const;
- const QMetaObject *metaObject() const;
- int initialIndex() const;
- bool maybeOverloaded() const;
- int mostGeneralMethod(QMetaMethod *out = 0) const;
- QList<int> overloadedIndexes() const;
-
-private:
- Data *data;
-};
-
-class QtPropertyFunction: public JSC::InternalFunction
-{
-public:
- // work around CELL_SIZE limitation
- struct Data
- {
- const QMetaObject *meta;
- int index;
-
- Data(const QMetaObject *m, int i)
- : meta(m), index(i) {}
- };
-
- QtPropertyFunction(const QMetaObject *meta, int index,
- JSC::JSGlobalData*, WTF::PassRefPtr<JSC::Structure>,
- const JSC::Identifier&);
- virtual ~QtPropertyFunction();
-
- virtual JSC::CallType getCallData(JSC::CallData&);
-
- virtual const JSC::ClassInfo* classInfo() const { return &info; }
- static const JSC::ClassInfo info;
-
- static JSC::JSValue JSC_HOST_CALL call(JSC::ExecState*, JSC::JSObject*,
- JSC::JSValue, const JSC::ArgList&);
-
- JSC::JSValue execute(JSC::ExecState *exec, JSC::JSValue thisValue,
- const JSC::ArgList &args);
-
- const QMetaObject *metaObject() const;
- int propertyIndex() const;
-
-private:
- Data *data;
-};
-
-class QMetaObjectWrapperObject : public JSC::JSObject
-{
-public:
- // work around CELL_SIZE limitation
- struct Data
- {
- const QMetaObject *value;
- JSC::JSValue ctor;
- JSC::JSValue prototype;
-
- Data(const QMetaObject *mo, JSC::JSValue c)
- : value(mo), ctor(c) {}
- };
-
- explicit QMetaObjectWrapperObject(
- JSC::ExecState *, const QMetaObject *metaobject, JSC::JSValue ctor,
- WTF::PassRefPtr<JSC::Structure> sid);
- ~QMetaObjectWrapperObject();
-
- virtual bool getOwnPropertySlot(JSC::ExecState*,
- const JSC::Identifier& propertyName,
- JSC::PropertySlot&);
- virtual bool getOwnPropertyDescriptor(JSC::ExecState*,
- const JSC::Identifier& propertyName,
- JSC::PropertyDescriptor&);
- virtual void put(JSC::ExecState* exec, const JSC::Identifier& propertyName,
- JSC::JSValue, JSC::PutPropertySlot&);
- virtual bool deleteProperty(JSC::ExecState*,
- const JSC::Identifier& propertyName);
- virtual void getOwnPropertyNames(JSC::ExecState*, JSC::PropertyNameArray&,
- JSC::EnumerationMode mode = JSC::ExcludeDontEnumProperties);
- virtual void markChildren(JSC::MarkStack& markStack);
-
- virtual JSC::CallType getCallData(JSC::CallData&);
- virtual JSC::ConstructType getConstructData(JSC::ConstructData&);
-
- virtual const JSC::ClassInfo* classInfo() const { return &info; }
- static const JSC::ClassInfo info;
-
- static JSC::JSValue JSC_HOST_CALL call(JSC::ExecState*, JSC::JSObject*,
- JSC::JSValue, const JSC::ArgList&);
- static JSC::JSObject* construct(JSC::ExecState *, JSC::JSObject *, const JSC::ArgList &);
-
- JSC::JSValue execute(JSC::ExecState *exec, const JSC::ArgList &args);
-
- inline const QMetaObject *value() const { return data->value; }
- inline void setValue(const QMetaObject* value) { data->value = value; }
-
- static WTF::PassRefPtr<JSC::Structure> createStructure(JSC::JSValue prototype)
- {
- return JSC::Structure::create(prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags));
- }
-
-protected:
- static const unsigned StructureFlags = JSC::OverridesGetOwnPropertySlot | JSC::OverridesMarkChildren | JSC::OverridesGetPropertyNames | JSC::ImplementsHasInstance | JSObject::StructureFlags;
-
- Data *data;
-};
-
-class QMetaObjectPrototype : public QMetaObjectWrapperObject
-{
-public:
- QMetaObjectPrototype(JSC::ExecState*, WTF::PassRefPtr<JSC::Structure>,
- JSC::Structure* prototypeFunctionStructure);
-};
-
-} // namespace QScript
-
-QT_END_NAMESPACE
-
-#endif