openDAQ
Open data acquisition platform
EnumerationTypePtr Class Reference

Enumeration types define the enumerator names and values of Enumerations with a name matching that of the Enumeration type. More...

+ Inheritance diagram for EnumerationTypePtr:
+ Collaboration diagram for EnumerationTypePtr:

Detailed Description

Enumeration types define the enumerator names and values of Enumerations with a name matching that of the Enumeration type.

An Enumeration type provides a String-type name, a list of enumerator names (list of Strings) and a list of enumerator values (list of Integer objects). To use Enumeration types for creating Enumeration objects, they must be added to the Type Manager. Alternatively, if an Enumeration is created without a matching Enumeration type in the manager, a default Enumeration type is generated based on the enumerator names and values of the created Enumeration object. This generated Enumeration type is then added to the Type Manager.

The enumerator values are represented as a list of Integer objects. These values can be explicitly specified during Enumeration type creation, or only the first enumerator value can be specified, with the rest automatically assigned in ascending order, starting from that value (or from the default '0' value if not specified).

Public Member Functions

ListPtr< IStringgetEnumeratorNames () const
 Gets the list of enumerator names. More...
 
DictPtr< IString, IIntegergetAsDictionary () const
 Gets the enumerator names and values as a Dictionary. More...
 
Int getEnumeratorIntValue (const StringPtr &name) const
 Gets the value of enumerator with the specified name. More...
 
SizeT getCount () const
 Gets the number of enumerators within the Enumeration Type. More...
 
- Public Member Functions inherited from GenericTypePtr< IEnumerationType >
StringPtr getName () const
 Gets the name of the Type. More...
 
- Public Member Functions inherited from ObjectPtr< T >
 ObjectPtr ()
 Creates a smart pointer with no wrapped interface.
 
 ObjectPtr (std::nullptr_t)
 Creates a smart pointer with no wrapped interface.
 
 ObjectPtr (const ObjectPtr< T > &objPtr)
 Creates a smart pointer from another smart pointer. More...
 
 ObjectPtr (ObjectPtr< T > &&objPtr) noexcept
 Creates a smart pointer from another smart pointer with move semantics. More...
 
template<class U >
 ObjectPtr (const ObjectPtr< U > &objPtr)
 Creates a smart pointer from another smart pointer of a different interface type. More...
 
template<class U >
 ObjectPtr (ObjectPtr< U > &&objPtr)
 Creates a smart pointer from another smart pointer of a different interface type with move semantics. More...
 
 ObjectPtr (T *&obj)
 Creates a smart pointer from an interface pointer. More...
 
 ObjectPtr (T *&&obj)
 Creates a smart pointer from an interface pointer with move semantics. More...
 
 ObjectPtr (IWeakRef *obj)
 Creates a smart pointer from a weak reference interface pointer. More...
 
 ObjectPtr (const wchar_t *value)
 Creates a string object smart pointer from UTF16 null terminated sequence. More...
 
 ObjectPtr (ConstCharPtr value)
 Creates a string object smart pointer from UTF8 null terminated sequence. More...
 
template<typename U , std::enable_if_t< is_ct_conv< U >::value &&!std::is_enum_v< U >, int > = 0>
 ObjectPtr (const U &value)
 Creates a smart pointer wrapper from value type. More...
 
virtual ~ObjectPtr ()
 Destructor. More...
 
bool equals (ObjectPtr< IBaseObject > other) const
 Compares object to another object for equality. More...
 
T * detach ()
 Disassociates this smart pointer object from the interface that it represents. More...
 
void dispose () const
 Disposes all references held by the object. More...
 
void release ()
 Resets the wrapped interface to nullptr. More...
 
T * addRefAndReturn () const
 Increments the reference count and returns the interface. More...
 
 operator T* () const
 Casts the pointer to the wrapped interface. More...
 
bool assigned () const
 Checks if the smart pointer is not empty.
 
T * getObject () const
 Gets the pointer to the wrapped interface. More...
 
T ** addressOf ()
 Gets the address of the pointer to the wrapped interface. More...
 
T ** operator& ()
 Gets the address of the pointer to the wrapped interface. More...
 
template<class U >
U * as (bool borrow=false) const
 Casts the wrapped interface to another interface. More...
 
template<class U >
U * asOrNull (bool borrow=false) const
 Casts the wrapped interface to another interface. More...
 
template<class U , class Ptr = typename InterfaceToSmartPtr<U>::SmartPtr>
Ptr asPtr (bool borrow=false) const
 Casts the wrapped interface to another interface and wraps in a smart pointer. More...
 
template<class U , class Ptr = typename InterfaceToSmartPtr<U>::SmartPtr>
Ptr asPtrOrNull (bool borrow=false) const
 Casts the wrapped interface to another interface and wraps in a smart pointer. More...
 
template<class U >
bool supportsInterface () const
 Checks if the wrapped interface supports another interface. More...
 
bool supportsInterface (const IntfID &id) const
 Checks if the wrapped interface supports another interface using the interface ID. More...
 
CoreType getCoreType () const
 Gets the object's CoreType. More...
 
ObjectPtr< IBaseObjectconvertTo (CoreType ct) const
 Converts the object to the specified CoreType. More...
 
SizeT getHashCode () const
 Returns hash code of the object. More...
 
ObjectPtr< IStringtoString () const
 Converts the object to the string object. More...
 
void freeze () const
 Freezes the object. More...
 
Bool isFrozen () const
 Checks if the object is frozen. More...
 
void dispatch (const ObjectPtr< IBaseObject > &params) const
 Calls the stored callback. More...
 
void dispatch () const
 Calls the stored callback without any parameters. More...
 
void execute () const
 Calls the stored callback without any parameters. More...
 
template<typename... Params>
void execute (Params... params) const
 Calls the stored callback. More...
 
template<typename... Params>
ObjectPtr< IBaseObjectcall (Params... params) const
 Calls the stored callback and returns the result. More...
 
bool isBorrowed () const
 Checks if the reference is borrowed. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from ObjectPtr< T >
template<class U = T>
static InterfaceToSmartPtr< U >::SmartPtr Borrow (T *&obj)
 Borrows an interface. More...
 
template<typename U = T>
static InterfaceToSmartPtr< U >::SmartPtr Adopt (T *obj)
 Adopts an interface. More...
 
template<class U , class V = T, std::enable_if_t< std::is_base_of_v< IBaseObject, U >, int > = 0>
static InterfaceToSmartPtr< V >::SmartPtr Borrow (U *&obj)
 Borrows an interface from the interface of another type. More...
 
static Bool Equals (const ObjectPtr< IBaseObject > &a, const ObjectPtr< IBaseObject > &b)
 Value based comparison of two objects. If both objects are nullptr, they are considered to be equal. More...
 

Member Function Documentation

◆ getAsDictionary()

DictPtr<IString, IInteger> getAsDictionary ( ) const
inline

Gets the enumerator names and values as a Dictionary.

Returns
The Dictionary object with enumerator names as keys, and enumerator values * as its values.

◆ getCount()

SizeT getCount ( ) const
inline

Gets the number of enumerators within the Enumeration Type.

Returns
The number of enumerators within the Enumeration Type.

◆ getEnumeratorIntValue()

Int getEnumeratorIntValue ( const StringPtr name) const
inline

Gets the value of enumerator with the specified name.

Parameters
nameThe name of the enumerator (String object).
Returns
The integer value of the enumerator with the specified name.

◆ getEnumeratorNames()

ListPtr<IString> getEnumeratorNames ( ) const
inline

Gets the list of enumerator names.

Returns
The list of enumerator names (String objects)