|
LMMS
|
#include <juce_DynamicObject.h>
Public Types | |
| using | Ptr = ReferenceCountedObjectPtr<DynamicObject> |
Private Attributes | |
| NamedValueSet | properties |
Additional Inherited Members | |
| Protected Member Functions inherited from juce::ReferenceCountedObject | |
| ReferenceCountedObject ()=default | |
| ReferenceCountedObject (const ReferenceCountedObject &) noexcept | |
| ReferenceCountedObject (ReferenceCountedObject &&) noexcept | |
| ReferenceCountedObject & | operator= (const ReferenceCountedObject &) noexcept |
| ReferenceCountedObject & | operator= (ReferenceCountedObject &&) noexcept |
| 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.
@tags{Core}
| using juce::DynamicObject::Ptr = ReferenceCountedObjectPtr<DynamicObject> |
| juce::DynamicObject::DynamicObject | ( | ) |
| juce::DynamicObject::DynamicObject | ( | const DynamicObject & | other | ) |
|
override |
| void juce::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 juce::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() 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 properties.
|
virtual |
Removes a named property.
| void juce::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.
|
private |