openshot-audio
0.1.5
|
#include <juce_core.h>
Public Types | |
typedef ReferenceCountedObjectPtr< DynamicObject > | Ptr |
Public Member Functions | |
DynamicObject () | |
DynamicObject (const DynamicObject &) | |
~DynamicObject () | |
virtual bool | hasProperty (const Identifier &propertyName) const |
virtual const var & | getProperty (const Identifier &propertyName) const |
virtual void | setProperty (const Identifier &propertyName, const var &newValue) |
virtual void | removeProperty (const Identifier &propertyName) |
virtual bool | hasMethod (const Identifier &methodName) const |
virtual var | invokeMethod (Identifier methodName, const var::NativeFunctionArgs &args) |
void | setMethod (Identifier methodName, var::NativeFunction function) |
void | clear () |
NamedValueSet & | getProperties () noexcept |
void | cloneAllProperties () |
virtual Ptr | clone () |
virtual void | writeAsJSON (OutputStream &, int indentLevel, bool allOnOneLine) |
![]() | |
void | incReferenceCount () noexcept |
void | decReferenceCount () noexcept |
bool | decReferenceCountWithoutDeleting () noexcept |
int | getReferenceCount () const noexcept |
Additional Inherited Members | |
![]() | |
ReferenceCountedObject () | |
virtual | ~ReferenceCountedObject () |
void | resetReferenceCount () noexcept |
Represents a dynamically implemented object.
This class is primarily intended for wrapping scripting language objects, but could be used for other purposes.
An instance of a DynamicObject can be used to store named properties, and by subclassing hasMethod() and invokeMethod(), you can give your object methods.
DynamicObject::DynamicObject | ( | ) |
DynamicObject::DynamicObject | ( | const DynamicObject & | other | ) |
DynamicObject::~DynamicObject | ( | ) |
void DynamicObject::clear | ( | ) |
Removes all properties and methods from the object.
|
virtual |
Returns a clone of this object. The default implementation of this method just returns a new DynamicObject with a (deep) copy of all of its properties. Subclasses can override this to implement their own custom copy routines.
Reimplemented in juce::JavascriptEngine::RootObject::FunctionObject.
void DynamicObject::cloneAllProperties | ( | ) |
Calls var::clone() on all the properties that this object contains.
|
inlinenoexcept |
Returns the NamedValueSet that holds the object's properties.
|
virtual |
Returns a named property. This returns var::null if no such property exists.
|
virtual |
Checks whether this object has the specified method.
The default implementation of this just checks whether there's a property with this name that's actually a method, but this can be overridden for building objects with dynamic invocation.
|
virtual |
Returns true if the object has a property with this name. Note that if the property is actually a method, this will return false.
|
virtual |
Invokes a named method on this object.
The default implementation looks up the named property, and if it's a method call, then it invokes it.
This method is virtual to allow more dynamic invocation to used for objects where the methods may not already be set as properies.
|
virtual |
Removes a named property.
void DynamicObject::setMethod | ( | Identifier | methodName, |
var::NativeFunction | function | ||
) |
Adds a method to the class.
This is basically the same as calling setProperty (methodName, (var::NativeFunction) myFunction), but helps to avoid accidentally invoking the wrong type of var constructor. It also makes the code easier to read,
|
virtual |
Sets a named property.
|
virtual |
Writes this object to a text stream in JSON format. This method is used by JSON::toString and JSON::writeToStream, and you should never need to call it directly, but it's virtual so that custom object types can stringify themselves appropriately.
Reimplemented in juce::JavascriptEngine::RootObject::FunctionObject.