Showing the changes to libraries/script-engine/src/qtscript/ArrayBufferViewClass.cpp (1 of 38 files). Show all
Unified · Split
| @@ -0,0 +1,53 @@ | |||
| 1 | // | ||
| 2 | // ArrayBufferViewClass.cpp | ||
| 3 | // | ||
| 4 | // | ||
| 5 | // Created by Clement on 7/8/14. | ||
| 6 | // Copyright 2014 High Fidelity, Inc. | ||
| 7 | // | ||
| 8 | // Distributed under the Apache License, Version 2.0. | ||
| 9 | // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html | ||
| 10 | // | ||
| 11 | |||
| 12 | #include "ArrayBufferViewClass.h" | ||
| 13 | #include "ScriptEngineQtScript.h" | ||
| 14 | |||
| 15 | Q_DECLARE_METATYPE(QByteArray*) | ||
| 16 | |||
| 17 | ArrayBufferViewClass::ArrayBufferViewClass(ScriptEngineQtScript* scriptEngine) : | ||
| 18 | QObject(scriptEngine), | ||
| 19 | QScriptClass(scriptEngine), | ||
| 20 | _scriptEngine(scriptEngine) { | ||
| 21 | // Save string handles for quick lookup | ||
| 22 | _bufferName = engine()->toStringHandle(BUFFER_PROPERTY_NAME.toLatin1()); | ||
| 23 | _byteOffsetName = engine()->toStringHandle(BYTE_OFFSET_PROPERTY_NAME.toLatin1()); | ||
| 24 | _byteLengthName = engine()->toStringHandle(BYTE_LENGTH_PROPERTY_NAME.toLatin1()); | ||
| 25 | } | ||
| 26 | |||
| 27 | QScriptClass::QueryFlags ArrayBufferViewClass::queryProperty(const QScriptValue& object, | ||
| 28 | const QScriptString& name, | ||
| 29 | QueryFlags flags, uint* id) { | ||
| 30 | if (name == _bufferName || name == _byteOffsetName || name == _byteLengthName) { | ||
| 31 | return flags &= HandlesReadAccess; // Only keep read access flags | ||
| 32 | } | ||
| 33 | return QScriptClass::QueryFlags(); // No access | ||
| 34 | } | ||
| 35 | |||
| 36 | QScriptValue ArrayBufferViewClass::property(const QScriptValue& object, | ||
| 37 | const QScriptString& name, uint id) { | ||
| 38 | if (name == _bufferName) { | ||
| 39 | return object.data().property(_bufferName); | ||
| 40 | } | ||
| 41 | if (name == _byteOffsetName) { | ||
| 42 | return object.data().property(_byteOffsetName); | ||
| 43 | } | ||
| 44 | if (name == _byteLengthName) { | ||
| 45 | return object.data().property(_byteLengthName); | ||
| 46 | } | ||
| 47 | return QScriptValue(); | ||
| 48 | } | ||
| 49 | |||
| 50 | QScriptValue::PropertyFlags ArrayBufferViewClass::propertyFlags(const QScriptValue& object, | ||
| 51 | const QScriptString& name, uint id) { | ||
| 52 | return QScriptValue::Undeletable; | ||
| 53 | } | ||