CoreComponents 3.0.0
A Modern C++ Toolkit
Loading...
Searching...
No Matches
MetaProtocol Class Reference

Duck-typed protocol. More...

#include <cc/MetaProtocol>

Inheritance diagram for MetaProtocol:

Public Member Functions

 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
 
- Public Member Functions inherited from 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 >
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.
 

Protected Member Functions

 MetaProtocol (State *newState)
 
void inherit (const MetaProtocol &parent)
 Inherit the definitions of protocol parent.
 
const State & me () const
 
State & me ()
 
- Protected Member Functions inherited from Object
template<class 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)
 
Objectoperator= (std::nullptr_t)
 

Additional Inherited Members

- Static Protected Member Functions inherited from Object
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)
 
- Protected Attributes inherited from Object
Handle< Stateme
 Internal object state
 

Detailed Description

Duck-typed protocol.

Constructor & Destructor Documentation

◆ MetaProtocol() [1/2]

MetaProtocol ( )
default

Create a primordial meta-protocol.

◆ MetaProtocol() [2/2]

Create a meta-protocol.

Member Function Documentation

◆ define()

void define ( const MetaPrototype & prototype)

Define a new type of meta-object that is allowed to appear.

◆ prototypes()

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)

◆ minCount()

long minCount ( ) const

Minimum number of objects allowed by the protocol

◆ maxCount()

long maxCount ( ) const

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()

bool lookup ( const String & className,
Out< MetaPrototype > prototype ) const

Search for prototype by its class name within this protocol

◆ defaultObject()

MetaObject defaultObject ( ) const

Default meta-object

◆ setDefaultObject()

void setDefaultObject ( const MetaObject & object)

Set the default meta-object to object

◆ inherit()

void inherit ( const MetaProtocol & parent)
protected

Inherit the definitions of protocol parent.