Duck-typed protocol.
More...
#include <cc/MetaProtocol>
|
| | MetaProtocol ()=default |
| | Create a primordial meta-protocol.
|
| |
| | MetaProtocol (New) |
| | Create a meta-protocol.
|
| |
| void | define (const MetaPrototype &prototype) |
| | Define a new type of meta-object that is allowed to appear.
|
| |
| const Map< String, MetaPrototype > & | prototypes () const |
| | Get the set of meta-objects types that are defined by this protocol (sans the parent's protocols types)
|
| |
| long | minCount () const |
| | Minimum number of objects allowed by the protocol
|
| |
| long | maxCount () const |
| | Maximum number of objects allowed by the protocol
|
| |
| void | setMinCount (long newValue) |
| | Set the minimum number of objects allowed by the protocol to newValue
|
| |
| void | setMaxCount (long newValue) |
| | Set the maximum number of objects allowed by the protocol to newValue
|
| |
| bool | lookup (const String &className, Out< MetaPrototype > prototype) const |
| | Search for prototype by its class name within this protocol
|
| |
| MetaObject | defaultObject () const |
| | Default meta-object
|
| |
| void | setDefaultObject (const MetaObject &object) |
| | Set the default meta-object to object
|
| |
| | Object ()=default |
| | Create a null object.
|
| |
| | operator bool () const |
| | Check if this is a non-null object.
|
| |
| bool | isNull () const |
| | Check if this is a null object.
|
| |
| template<class T > |
| bool | is () const |
| | Check if this object is of type T.
|
| |
| template<class T > |
| T | as () const |
| | Cast this object to type T.
|
| |
| bool | isWeak () const |
| | Check if the underlying object reference is weak.
|
| |
| bool | operator== (const Object &other) const |
| | Equality operator.
|
| |
| std::strong_ordering | operator<=> (const Object &other) const |
| | Ordering operator.
|
| |
| long | useCount () const |
| | Reference count.
|
| |
|
|
| MetaProtocol (State *newState) |
| |
| void | inherit (const MetaProtocol &parent) |
| | Inherit the definitions of protocol parent.
|
| |
|
const State & | me () const |
| |
|
State & | me () |
| |
|
template<class T > |
| T | weak () const |
| |
| template<class T > |
| void | initOnce () |
| | Create the object state when called the first time.
|
| |
| template<class T > |
| void | initOncePerThread () |
| | Create a distinct object state for each thread when called the first time in that thread.
|
| |
| | Object (State *newState) |
| | Initialize object with newState.
|
| |
|
| Object (State *state, Alias) |
| |
|
| Object (State *state, Weak) |
| |
|
Object & | operator= (std::nullptr_t) |
| |
|
| template<class T > |
| static T | alias (const State *state) |
| | Create an alias object for the given state.
|
| |
|
template<class T > |
| static T | weak (const State *state) |
| |
| Handle< State > | me |
| | Internal object state
|
| |
◆ MetaProtocol() [1/2]
Create a primordial meta-protocol.
◆ MetaProtocol() [2/2]
◆ define()
Define a new type of meta-object that is allowed to appear.
◆ prototypes()
Get the set of meta-objects types that are defined by this protocol (sans the parent's protocols types)
◆ minCount()
Minimum number of objects allowed by the protocol
◆ maxCount()
Maximum number of objects allowed by the protocol
◆ setMinCount()
| void setMinCount |
( |
long | newValue | ) |
|
Set the minimum number of objects allowed by the protocol to newValue
◆ setMaxCount()
| void setMaxCount |
( |
long | newValue | ) |
|
Set the maximum number of objects allowed by the protocol to newValue
◆ lookup()
Search for prototype by its class name within this protocol
◆ defaultObject()
◆ setDefaultObject()
| void setDefaultObject |
( |
const MetaObject & | object | ) |
|
Set the default meta-object to object
◆ inherit()
Inherit the definitions of protocol parent.