ADTF
Loading...
Searching...
No Matches
adtf::ucom::ant Namespace Reference

Namespace for all functionality of the ADTF UCOM SDK provided since v3.0. More...

Namespaces

namespace  detail
 Namespace for all internally used functionality implemented.
 

Classes

class  cClassInfo
 
class  cEventSource
 
class  class_factory
 
class  cLockedObject
 
class  cPlugin
 
class  cPluginInfo
 
class  cPooledClassFactory
 
class  cService
 
class  cServiceLevelmachine
 
class  cSharedLockedObject
 
class  cStream
 
struct  default_object
 Declares the class to use when implementing IObject::GetInterface() using inheritance. More...
 
class  default_object< inherit_from< Parents... >, expose_interfaces< Interfaces... >, Child >
 Used to implement IObject::GetInterface() methods with given interfaces to expose. More...
 
class  enable_object_ptr_from_this
 Safely retrieve a valid object_ptr<> instance to *this when all we have is *this. More...
 
struct  expose_interfaces
 Meta struct template evaluated at compile time when compiling default_object. More...
 
class  extend_object
 Used to implement IObject::GetInterface() methods with given interfaces to expose. More...
 
struct  forward_iterator
 POD forward iterator type using a forward iterator interface to iterate over a sequence. More...
 
class  IBidirectionalIterator
 Bidirectional iterator interface details Additionally providing method Previous() for POD bidirectional iterators. More...
 
class  IClassFactory
 
class  IClassInfo
 
class  IDevice
 
class  IEventSink
 
class  IEventSource
 
class  IForwardIterator
 Forward iterator interface providing method Next() usable by POD forward iterators. More...
 
class  IInputStream
 
class  ILockedObject
 
class  ILogger
 
struct  inherit_from
 Meta struct template evaluated at compile time when compiling default_object. More...
 
class  interface_expose
 
class  IObject
 
class  iobject_enum
 
class  iobject_ptr
 Base object pointer to realize binary compatible reference counting in interface methods. More...
 
class  iobject_ptr< const T >
 Base object pointer to realize binary compatible reference counting in interface methods. More...
 
class  iobject_ptr_base
 Base class for iobject_ptr<T> defining their commonly used interface methods. More...
 
class  iobject_ptr_locked
 
class  iobject_ptr_shared_locked
 
class  IObjectCompatibility
 
class  IObjectInfo
 
class  IObjectPool
 
class  IOutputStream
 
class  IPlugin
 
class  IPluginInfo
 
class  IPluginLogging
 
class  IRandomAccessIterator
 Random access iterator interface. More...
 
class  IRuntime
 
class  IRuntimeHook
 
class  IScriptable
 
class  ISerializable
 
class  IService
 
class  ISharedLockedObject
 
class  IStream
 
struct  iterator_adapter
 Adapter for begin and end iterators - usable as return and parameter value in interfaces. More...
 
struct  iterator_adapter< T, pointer_iterator >
 Adapter for beginning and end iterators which are pointers (e.g. std::array<>::iterator) More...
 
class  level_machine
 
class  object_enum
 
class  object_enum_base
 basic object interface implementation template. More...
 
class  object_ptr
 
class  object_ptr_locked
 
class  object_ptr_shared_locked
 
struct  plugin_initializer
 
class  plugin_template
 
struct  plugin_version_default
 
struct  pointer_iterator
 Empty struct template to specialize implementations of iterator interfaces. More...
 
struct  tDependencyDescription
 Dependency description usable for ADTF_CLASS_DEPENDENCIES() More...
 
struct  tNamedVersion
 Named version information consisting of the modules name and its adtf_util::tVersion. More...
 
struct  ucom_type_streamer
 
struct  ucom_type_streamer< adtf_util::cString >
 
class  weak_object_ptr
 Implementation of a weak pointer for usage with iobject_ptr and object_ptr. More...
 

Typedefs

template<typename T>
using iobject_list = iobject_enum < T >
 
template<typename T>
using iobject_vector = iobject_enum < T >
 
template<typename T, typename INTERFACE_TYPE = T>
using object_list = object_enum < T, INTERFACE_TYPE, std::list>
 
template<typename T, typename INTERFACE_TYPE = T>
using object_vector = object_enum < T, INTERFACE_TYPE, std::vector>
 
typedef UCOM_PLUGIN_IMPORT int32_t(UCOM_PLUGIN_CALLTYPE * fnUCOMGetVersion) (const char *strVersionID, uint32_t *pui32UCOMMajor, uint32_t *pui32UCOMMinor, uint32_t *pui32UCOMPatch)
 function for the c - Plugin Entry to load a plugin
 
typedef UCOM_PLUGIN_IMPORT int32_t(UCOM_PLUGIN_CALLTYPE * fnUCOMLoadPlugin) (void *pvRuntimeInstance, uint32_t ui32UCOMMajor, uint32_t ui32UCOMMinor, uint32_t ui32UCOMPatch, void **ppvPluginObject, tHandle hModule)
 function for the c - Plugin Entry to load a plugin
 
typedef UCOM_PLUGIN_IMPORT int32_t(UCOM_PLUGIN_CALLTYPE * fnUCOMUnloadPlugin) ()
 function for the c - Plugin Entry to unload a plugin
 

Enumerations

enum  object_enum_push_option { eNone = 0x00 , eNoDuplicates = 0x01 }
 

Functions

template<typename Interface>
constexpr const char * get_iid () noexcept
 
template<typename Interface>
constexpr const char * get_iid (const Interface &) noexcept
 
template<typename Interface>
constexpr const char * get_iid (const Interface *) noexcept
 
template<typename classT>
constexpr iterator_adapter< const tDependencyDescription, pointer_iteratorget_class_dependencies ()
 
template<typename classT>
constexpr iterator_adapter< const tDependencyDescription, pointer_iteratorget_class_dependencies (const classT &)
 
template<typename classT>
constexpr iterator_adapter< const tDependencyDescription, pointer_iteratorget_class_dependencies (const classT *)
 
template<typename classT>
constexpr const char * get_class_id ()
 
template<typename classT>
constexpr const char * get_class_id (const classT &)
 
template<typename classT>
constexpr const char * get_class_id (const classT *)
 
template<typename classT>
constexpr const char * get_class_label ()
 
template<typename classT>
constexpr const char * get_class_label (const classT &)
 
template<typename classT>
constexpr const char * get_class_label (const classT *)
 
template<typename classT>
constexpr const cClassInfoget_class_info_reference ()
 
template<typename classT>
constexpr const cClassInfoget_class_info_reference (const classT *)
 
template<typename classT>
constexpr const cClassInfoget_class_info_reference (const classT &)
 
template<typename classT>
object_ptr< const adtf::ucom::ant::IClassInfoget_class_info ()
 
template<typename classT>
object_ptr< const adtf::ucom::ant::IClassInfoget_class_info (const classT &)
 
template<typename classT>
object_ptr< const adtf::ucom::ant::IClassInfoget_class_info (const classT *)
 
template<typename ... Args>
constexpr tNamedVersion add_version (const char *i_strProduct, Args... args)
 Used for parameter list in ADTF_CLASS_DEPENDENCIES() to define version information.
 
template<typename classT>
constexpr iterator_adapter< const tNamedVersion, pointer_iteratorget_class_versions ()
 
template<typename classT>
constexpr iterator_adapter< const tNamedVersion, pointer_iteratorget_class_versions (const classT &)
 
template<typename classT>
constexpr iterator_adapter< const tNamedVersion, pointer_iteratorget_class_versions (const classT *)
 
template<typename T>
bool operator< (const forward_iterator< T > &oLHS, const forward_iterator< T > &oRHS) noexcept
 Less-than operator for forward_iterator.
 
template<typename T>
bool operator> (const forward_iterator< T > &oLHS, const forward_iterator< T > &oRHS) noexcept
 Greater-than operator for forward_iterator.
 
template<typename T>
bool operator<= (const forward_iterator< T > &oLHS, const forward_iterator< T > &oRHS) noexcept
 Less-than-or-equal operator for forward_iterator.
 
template<typename T>
bool operator>= (const forward_iterator< T > &oLHS, const forward_iterator< T > &oRHS) noexcept
 Greater-than-or-equal operator for forward_iterator.
 
template<typename T>
bool operator== (const forward_iterator< T > &oLHS, const forward_iterator< T > &oRHS) noexcept
 Equality operator for forward_iterator.
 
template<typename T>
bool operator!= (const forward_iterator< T > &oLHS, const forward_iterator< T > &oRHS) noexcept
 Inequality operator for forward_iterator.
 
template<typename T, typename U>
bool operator== (const iobject_ptr< T > &i_oLHS, const U *i_pRHS)
 Compare iobject_ptr<T> with plain pointer of the same type for equality.
 
template<typename T, typename U>
bool operator== (const T *i_pLHS, const iobject_ptr< U > &i_oRHS)
 Compare iobject_ptr<T> with plain pointer of the same type for equality.
 
template<typename T, typename U>
bool operator!= (const iobject_ptr< T > &i_oLHS, const U *i_pRHS)
 Compare iobject_ptr<T> with plain pointer of the same type for inequality.
 
template<typename T, typename U>
bool operator!= (const T *i_pLHS, const iobject_ptr< U > &i_oRHS)
 Compare iobject_ptr<T> with plain pointer of the same type for inequality.
 
template<typename T, typename U>
bool operator== (const iobject_ptr< T > &i_oLHS, const iobject_ptr< U > &i_oRHS)
 Compare two iobject_ptr with shared resource of same base for equality.
 
template<typename T, typename U>
bool operator!= (const iobject_ptr< T > &i_oLHS, const iobject_ptr< U > &i_oRHS)
 Compare two iobject_ptr with shared resource of same base for inequality.
 
template<typename T, typename U>
bool operator< (const iobject_ptr< T > &i_oLHS, const iobject_ptr< U > &i_oRHS)
 Less-than-operator for two iobject_ptr with shared resource of same base.
 
template<typename T, typename U>
bool operator> (const iobject_ptr< T > &i_oLHS, const iobject_ptr< U > &i_oRHS)
 Greater-than-operator for two iobject_ptr with shared resource of same base.
 
template<typename T, typename U>
bool operator<= (const iobject_ptr< T > &i_oLHS, const iobject_ptr< U > &i_oRHS)
 Less-than-or-equal-operator for two iobject_ptr with shared resource of same base.
 
template<typename T, typename U>
bool operator>= (const iobject_ptr< T > &i_oLHS, const iobject_ptr< U > &i_oRHS)
 Greater-than-or-equal-operator for two iobject_ptr with shared resource of same base.
 
template<typename T>
bool operator== (const iobject_ptr< T > &i_oLHS, std::nullptr_t)
 Compare iobject_ptr<T> with nullptr type for equality.
 
template<typename T>
bool operator== (std::nullptr_t, const iobject_ptr< T > &i_oRHS)
 Compare iobject_ptr<T> with nullptr type for equality.
 
template<typename T>
bool operator!= (const iobject_ptr< T > &i_oLHS, std::nullptr_t)
 Compare iobject_ptr<T> with nullptr type for inequality.
 
template<typename T>
bool operator!= (std::nullptr_t, const iobject_ptr< T > &i_oRHS)
 Compare iobject_ptr<T> with nullptr type for inequality.
 
template<typename T>
bool operator< (const iobject_ptr< T > &i_oLHS, std::nullptr_t)
 Check whether an iobject_ptr<T> contains a shared pointer less than nullptr.
 
template<typename T>
bool operator< (std::nullptr_t, const iobject_ptr< T > &i_oRHS)
 Check whether an iobject_ptr<T> contains a shared pointer less than nullptr.
 
template<typename T>
bool operator<= (const iobject_ptr< T > &i_oLHS, std::nullptr_t)
 Check whether an iobject_ptr<T> contains a shared pointer less than or equal to nullptr.
 
template<typename T>
bool operator<= (std::nullptr_t, const iobject_ptr< T > &i_oRHS)
 Check whether an iobject_ptr<T> contains a shared pointer less than or equal to nullptr.
 
template<typename T>
bool operator> (const iobject_ptr< T > &i_oLHS, std::nullptr_t)
 Check whether an iobject_ptr<T> contains a shared pointer greater than nullptr.
 
template<typename T>
bool operator> (std::nullptr_t, const iobject_ptr< T > &i_oRHS)
 Check whether an iobject_ptr<T> contains a shared pointer greater than nullptr.
 
template<typename T>
bool operator>= (const iobject_ptr< T > &i_oLHS, std::nullptr_t)
 Check whether an iobject_ptr<T> contains a shared pointer greater than or equal to nullptr.
 
template<typename T>
bool operator>= (std::nullptr_t, const iobject_ptr< T > &i_oRHS)
 Check whether an iobject_ptr<T> contains a shared pointer greater than or equal to nullptr.
 
template<typename T>
object_ptr< T > ucom_object_ptr_cast (object_ptr< T > oCasted)
 Create an object_ptr with an already shared resource of implicitly convertible type.
 
template<typename Implementation, typename... Args>
object_ptr< Implementation > make_object_ptr (Args &&... args)
 Create an instance of type object_ptr with Implementation as the shared resource.
 
template<typename Implementation>
object_ptr< std::decay_t< Implementation > > make_object_ptr (Implementation &&object_to_emplace)
 Create an instance of type object_ptr with Implementation as the shared resource with a specialized behaviour emplacing the given argument as the shared resource itself.
 
template<typename T, typename U>
tResult reset_object_ptr (iobject_ptr< const T > &o_oDest, const iobject_ptr< U > &i_oSrc)
 Reset an iobject_ptr with const T.
 
template<typename T>
tResult reset_object_ptr (iobject_ptr< const T > &o_oDest, const iobject_ptr< T > &i_oSrc)
 Reset an iobject_ptr with const T - specialization for best performance.
 
tResult get_plugin (iobject_ptr< IPlugin > &pPlugin)
 
tResult ucom_write_to_stream_buffer (IOutputStream &oOutStream, const void *pBuffer, size_t szBuffer, size_t &szCount)
 
tResult ucom_write_to_stream_string (IOutputStream &oOutStream, const adtf_util::cString &strValue, size_t &szCount)
 
tResult ucom_read_from_stream_buffer (const IInputStream &oInStream, void *pBuffer, size_t szBuffer, size_t &szCount)
 
tResult ucom_read_from_stream_string (const IInputStream &oInStream, adtf_util::cString &strValue, size_t &szReadCount)
 
template<typename T>
tResult ucom_write_to_stream (IOutputStream &oOutStream, const T &oValue, size_t &szCount)
 
template<typename T>
tResult ucom_read_from_stream (const IInputStream &oInStream, T &oValue, size_t &szCount)
 
template<typename T>
IOutputStreamoperator<< (IOutputStream &oWriteStream, const T &oValue)
 
template<typename T>
const IInputStreamoperator>> (const IInputStream &oReadStream, T &oValue)
 
template<typename InterfacePointerType, typename ObjectPointerType>
InterfacePointerType ucom_cast (ObjectPointerType i_pObject) noexcept
 

Detailed Description

Namespace for all functionality of the ADTF UCOM SDK provided since v3.0.

Typedef Documentation

◆ iobject_list

template<typename T>
using adtf::ucom::ant::iobject_list = iobject_enum < T >

alias type for iobject_enum.

Template Parameters
Tinterface object type to represent (this value type must derived from IObject)

◆ iobject_vector

template<typename T>
using adtf::ucom::ant::iobject_vector = iobject_enum < T >

alias type for iobject_enum.

Template Parameters
Tinterface object type to represent (this value type must derived from IObject)

◆ object_list

template<typename T, typename INTERFACE_TYPE = T>
using adtf::ucom::ant::object_list = object_enum < T, INTERFACE_TYPE, std::list>

Implementation of an iobject_list<INTERFACE_TYPE> interface by using a std::list as container type.

Template Parameters
Tobject type to store (this value type must derived from IObject)
INTERFACE_TYPEinterface type the implementation represents. (iobject_list<INTERFACE_TYPE>)

◆ object_vector

template<typename T, typename INTERFACE_TYPE = T>
using adtf::ucom::ant::object_vector = object_enum < T, INTERFACE_TYPE, std::vector>

Implementation of an iobject_vector<INTERFACE_TYPE> interface by using a std::vector as container type.

Template Parameters
Tobject type to store (this value type must derived from IObject)
INTERFACE_TYPEinterface type the implementation represents. (iobject_vector<INTERFACE_TYPE>)

Enumeration Type Documentation

◆ object_enum_push_option

Push option for object_enum_intf::PushObject

Enumerator
eNone 

no push option set

eNoDuplicates 

filter duplicates on PushObject call

Function Documentation

◆ add_version()

template<typename ... Args>
tNamedVersion adtf::ucom::ant::add_version ( const char * i_strProduct,
Args... args )
constexpr

Used for parameter list in ADTF_CLASS_DEPENDENCIES() to define version information.

Template Parameters
Listof integral type used as integral types for adtf_util::tVersion
Parameters
[in]i_strProductName of the product the version is given for
[in]argsList of integral constants used as parameters for adtf_util::tVersion
Returns
Compile time constant of type tNamedVersion generated with i_strProduct and args

◆ get_class_dependencies() [1/3]

template<typename classT>
iterator_adapter< const tDependencyDescription, pointer_iterator > adtf::ucom::ant::get_class_dependencies ( )
constexpr

Get the class dependencies (corresponding to the CID) of the Class type

Template Parameters
classTClass type the version needs to be queried from. ADTF_CLASS_ID_NAME() is mandatory and ADTF_CLASS_DEPENDENCIES() is optional within public scope of classT to get the dependencies outside the class implementation.
Returns
iterator adapter instance containing begin and end iterators of the dependency container

◆ get_class_dependencies() [2/3]

template<typename classT>
iterator_adapter< const tDependencyDescription, pointer_iterator > adtf::ucom::ant::get_class_dependencies ( const classT & )
constexpr

Convenience function usable with a reference to an object of type class. tDependencyDescription, pointer_iterator> get_class_dependencies()

tDependencyDescription, pointer_iterator> get_class_dependencies()

◆ get_class_dependencies() [3/3]

template<typename classT>
iterator_adapter< const tDependencyDescription, pointer_iterator > adtf::ucom::ant::get_class_dependencies ( const classT * )
constexpr

Convenience function usable with a reference to an object of type class. tDependencyDescription, pointer_iterator> get_class_dependencies()

tDependencyDescription, pointer_iterator> get_class_dependencies()

◆ get_class_id() [1/3]

template<typename classT>
const char * adtf::ucom::ant::get_class_id ( )
constexpr

Get the class id (CID) of the Class type

Template Parameters
classTClass type the IID needs to be queried from. ADTF_CLASS_ID() needs to be implemented within public class scope of classT to get the CID outside the class implementation
Returns
The class identifier as string representation defined in ADTF_CLASS_ID()

◆ get_class_id() [2/3]

template<typename classT>
const char * adtf::ucom::ant::get_class_id ( const classT & )
constexpr

Convenience function usable with a reference to an object of type classT.

Get the class id (CID) of the Class type

Template Parameters
classTClass type the IID needs to be queried from. ADTF_CLASS_ID() needs to be implemented within public class scope of classT to get the CID outside the class implementation
Returns
The class identifier as string representation defined in ADTF_CLASS_ID()

◆ get_class_id() [3/3]

template<typename classT>
const char * adtf::ucom::ant::get_class_id ( const classT * )
constexpr

Convenience function usable with a pointer to an object of type classT.

Get the class id (CID) of the Class type

Template Parameters
classTClass type the IID needs to be queried from. ADTF_CLASS_ID() needs to be implemented within public class scope of classT to get the CID outside the class implementation
Returns
The class identifier as string representation defined in ADTF_CLASS_ID()

◆ get_class_info() [1/3]

template<typename classT>
object_ptr< const adtf::ucom::ant::IClassInfo > adtf::ucom::ant::get_class_info ( )

Get the class info of the Class type

Template Parameters
classTClass type the class info object needs to be queried from. ADTF_CLASS_ID() or ADTF_CLASS_ID_NAME() needs to be implemented within public class scope of classT
Returns
object pointer to IClassInfo

◆ get_class_info() [2/3]

template<typename classT>
object_ptr< const adtf::ucom::ant::IClassInfo > adtf::ucom::ant::get_class_info ( const classT & )

Convenience function usable with a reference to an object of type classT.

Get the class info of the Class type

Template Parameters
classTClass type the class info object needs to be queried from. ADTF_CLASS_ID() or ADTF_CLASS_ID_NAME() needs to be implemented within public class scope of classT
Returns
object pointer to IClassInfo

◆ get_class_info() [3/3]

template<typename classT>
object_ptr< const adtf::ucom::ant::IClassInfo > adtf::ucom::ant::get_class_info ( const classT * )

Convenience function usable with a pointer to an object of type classT.

Get the class info of the Class type

Template Parameters
classTClass type the class info object needs to be queried from. ADTF_CLASS_ID() or ADTF_CLASS_ID_NAME() needs to be implemented within public class scope of classT
Returns
object pointer to IClassInfo

◆ get_class_info_reference() [1/3]

template<typename classT>
const cClassInfo & adtf::ucom::ant::get_class_info_reference ( )
constexpr

Get reference to static class info constant of the classT type

Template Parameters
classTClass type the static class info constant needs to be queried from. ADTF_CLASS_ID() or ADTF_CLASS_ID_NAME() needs to be implemented within public class scope of classT
Returns
Reference to static class info constant of type classT

◆ get_class_info_reference() [2/3]

template<typename classT>
const cClassInfo & adtf::ucom::ant::get_class_info_reference ( const classT & )
constexpr

Convenience function usable with a reference to an object of type classT.

Get reference to static class info constant of the classT type

Template Parameters
classTClass type the static class info constant needs to be queried from. ADTF_CLASS_ID() or ADTF_CLASS_ID_NAME() needs to be implemented within public class scope of classT
Returns
Reference to static class info constant of type classT

◆ get_class_info_reference() [3/3]

template<typename classT>
const cClassInfo & adtf::ucom::ant::get_class_info_reference ( const classT * )
constexpr

Convenience function usable with a pointer to an object of type classT.

Get reference to static class info constant of the classT type

Template Parameters
classTClass type the static class info constant needs to be queried from. ADTF_CLASS_ID() or ADTF_CLASS_ID_NAME() needs to be implemented within public class scope of classT
Returns
Reference to static class info constant of type classT

◆ get_class_label() [1/3]

template<typename classT>
const char * adtf::ucom::ant::get_class_label ( )
constexpr

Get the class label (corresponding to the CID) of the Class type (a readable name !)

Template Parameters
classTClass type the Label needs to be queried from. ADTF_CLASS_ID_LABEL() needs to be implemented within public class scope of the Class to get the CID outside the class implementation
Returns
The class identifier as string representation defined in ADTF_CLASS_ID_NAME()

◆ get_class_label() [2/3]

template<typename classT>
const char * adtf::ucom::ant::get_class_label ( const classT & )
constexpr

Convenience function usable with a reference to an object of type class.

Get the class label (corresponding to the CID) of the Class type (a readable name !)

Template Parameters
classTClass type the Label needs to be queried from. ADTF_CLASS_ID_LABEL() needs to be implemented within public class scope of the Class to get the CID outside the class implementation
Returns
The class identifier as string representation defined in ADTF_CLASS_ID_NAME()

◆ get_class_label() [3/3]

template<typename classT>
const char * adtf::ucom::ant::get_class_label ( const classT * )
constexpr

Convenience function usable with a pointer to an object of type class.

Get the class label (corresponding to the CID) of the Class type (a readable name !)

Template Parameters
classTClass type the Label needs to be queried from. ADTF_CLASS_ID_LABEL() needs to be implemented within public class scope of the Class to get the CID outside the class implementation
Returns
The class identifier as string representation defined in ADTF_CLASS_ID_NAME()

◆ get_class_versions() [1/3]

template<typename classT>
iterator_adapter< const tNamedVersion, pointer_iterator > adtf::ucom::ant::get_class_versions ( )
constexpr

Get the class versions (corresponding to the CID) of the Class type

Template Parameters
classTClass type the version needs to be queried from. ADTF_CLASS_ID_NAME() is mandatory and ADTF_CLASS_VERSIONS() is optional within public class scope of classT to get the version outside the class implementation.
Returns
iterator adapter instance containing iterators to begin and end of the version container

◆ get_class_versions() [2/3]

template<typename classT>
iterator_adapter< const tNamedVersion, pointer_iterator > adtf::ucom::ant::get_class_versions ( const classT & )
constexpr

Convenience function usable with a reference to an object of type class. tNamedVersion, pointer_iterator> get_class_versions()

tNamedVersion, pointer_iterator> get_class_versions()

◆ get_class_versions() [3/3]

template<typename classT>
iterator_adapter< const tNamedVersion, pointer_iterator > adtf::ucom::ant::get_class_versions ( const classT * )
constexpr

Convenience function usable with a pointer to an object of type class. tNamedVersion, pointer_iterator> get_class_versions()

tNamedVersion, pointer_iterator> get_class_versions()

◆ get_iid() [1/3]

template<typename Interface>
const char * adtf::ucom::ant::get_iid ( )
constexprnoexcept

Get the interface id (IID) of the Interface type

Template Parameters
InterfaceInterface type the IID needs to be queried from. ADTF_IID() needs to be implemented within public class scope of Interface, otherwise the build process gets canceled using a static_assert.
Returns
The interface id as string representation defined in implementation of ADTF_IID()

◆ get_iid() [2/3]

template<typename Interface>
const char * adtf::ucom::ant::get_iid ( const Interface & )
constexprnoexcept

Convenience function usable with a reference to an object of type interface.

Get the interface id (IID) of the Interface type

Template Parameters
InterfaceInterface type the IID needs to be queried from. ADTF_IID() needs to be implemented within public class scope of Interface, otherwise the build process gets canceled using a static_assert.
Returns
The interface id as string representation defined in implementation of ADTF_IID()

◆ get_iid() [3/3]

template<typename Interface>
const char * adtf::ucom::ant::get_iid ( const Interface * )
constexprnoexcept

Convenience function usable with a pointer to an object of type interface.

Get the interface id (IID) of the Interface type

Template Parameters
InterfaceInterface type the IID needs to be queried from. ADTF_IID() needs to be implemented within public class scope of Interface, otherwise the build process gets canceled using a static_assert.
Returns
The interface id as string representation defined in implementation of ADTF_IID()

◆ get_plugin()

tResult adtf::ucom::ant::get_plugin ( iobject_ptr< IPlugin > & pPlugin)

Returns a reference to the plugin instance of the current module.

Parameters
[out]pPluginThe plugin.
Returns
Standard result.

◆ make_object_ptr() [1/2]

template<typename Implementation, typename... Args>
object_ptr< Implementation > adtf::ucom::ant::make_object_ptr ( Args &&... args)
inline

Create an instance of type object_ptr with Implementation as the shared resource.

make_object_ptr can be used in complete analogy to std::make_shared or std::make_unique - to create an object of type object_ptr without the need to explicitly call new to allocate the shared resource. In fact, this function is the only valid way to create an object_ptr with a new shared resource.

Template Parameters
ImplementationType of the shared resource which is created using the default allocator std::allocator.
ArgsParameter pack forwarded to the constructor of Implementation during instantiation.
Parameters
[in]argsParameters forwarded to the constructor of Implementation during instantiation.
Note
Due to the provided aliasing constructor in object_ptr, any created object_ptr with a concrete implementation of IObject can be implicitly converted to an object_ptr managing a pointer to an interface of this concrete implementation.
Return values
Onsuccess, the instance contains a newly allocated, reference counted object of type Implementation
Exceptions
...On failure, the original exception is thrown.
See also
ssection_ucom_reference_counting_creation

◆ make_object_ptr() [2/2]

template<typename Implementation>
object_ptr< std::decay_t< Implementation > > adtf::ucom::ant::make_object_ptr ( Implementation && object_to_emplace)
inline

Create an instance of type object_ptr with Implementation as the shared resource with a specialized behaviour emplacing the given argument as the shared resource itself.

Template Parameters
ImplementationType of the shared resource which is created using the default allocator std::allocator and construct an instance of the given type in place.
Parameters
[in]object_to_emplacer-value reference to emplace as the shared resource of the created object_ptr.
Return values
Onsuccess, the instance contains a newly allocated, reference counted object of type Implementation
Exceptions
...On failure, the original exception is thrown.
See also
ssection_ucom_reference_counting_creation

◆ operator!=() [1/6]

template<typename T>
bool adtf::ucom::ant::operator!= ( const forward_iterator< T > & oLHS,
const forward_iterator< T > & oRHS )
inlinenoexcept

Inequality operator for forward_iterator.

Template Parameters
TValue type of the container the iterator operates on
Parameters
[in]oLHSLeft hand side iterator object
[in]oRHSRight hand side iterator object
Returns
true if pointer to value of oLHS is not equal pointer to value of oRHS, false otherwise

◆ operator!=() [2/6]

template<typename T, typename U>
bool adtf::ucom::ant::operator!= ( const iobject_ptr< T > & i_oLHS,
const iobject_ptr< U > & i_oRHS )

Compare two iobject_ptr with shared resource of same base for inequality.

Template Parameters
TType of the pointer to the shared resource
UType of the pointer to the shared resource (implicitly convertible to T)
Parameters
[in]i_oLHSLeft hand side shared object pointer containing the shared resource.
[in]i_oRHSRight hand side shared object pointer containing the shared resource.
Returns
false if i_oLHS and i_oRHS contain the same shared resource, true otherwise.

◆ operator!=() [3/6]

template<typename T, typename U>
bool adtf::ucom::ant::operator!= ( const iobject_ptr< T > & i_oLHS,
const U * i_pRHS )

Compare iobject_ptr<T> with plain pointer of the same type for inequality.

Template Parameters
TType of the pointer to the shared resource
UType of the pointer to the shared resource (implicitly convertible to T)
Parameters
[in]i_oLHSShared object pointer containing the shared resource.
[in]i_pRHSOrdinary pointer to resource.
Returns
false if i_oLHS and i_pRHS point to the same address, true otherwise.

◆ operator!=() [4/6]

template<typename T>
bool adtf::ucom::ant::operator!= ( const iobject_ptr< T > & i_oLHS,
std::nullptr_t  )

Compare iobject_ptr<T> with nullptr type for inequality.

Template Parameters
TType of the pointer to the shared resource
Parameters
[in]i_oLHSShared object pointer containing the shared resource.
Returns
false if i_oLHS contains a nullptr, true otherwise.

◆ operator!=() [5/6]

template<typename T, typename U>
bool adtf::ucom::ant::operator!= ( const T * i_pLHS,
const iobject_ptr< U > & i_oRHS )

Compare iobject_ptr<T> with plain pointer of the same type for inequality.

Template Parameters
TType of the pointer to the shared resource
UType of the pointer to the shared resource (implicitly convertible to T)
Parameters
[in]i_pLHSOrdinary pointer to resource.
[in]i_oRHSShared object pointer containing the shared resource.
Returns
false if i_pLHS and i_oRHS point to the same address, true otherwise.

◆ operator!=() [6/6]

template<typename T>
bool adtf::ucom::ant::operator!= ( std::nullptr_t ,
const iobject_ptr< T > & i_oRHS )

Compare iobject_ptr<T> with nullptr type for inequality.

Template Parameters
TType of the pointer to the shared resource
Parameters
[in]i_oRHSShared object pointer containing the shared resource.
Returns
false if i_oRHS contains a nullptr, true otherwise.

◆ operator<() [1/4]

template<typename T>
bool adtf::ucom::ant::operator< ( const forward_iterator< T > & oLHS,
const forward_iterator< T > & oRHS )
inlinenoexcept

Less-than operator for forward_iterator.

Template Parameters
TValue type of the container the iterator operates on
Parameters
[in]oLHSLeft hand side iterator object
[in]oRHSRight hand side iterator object
Returns
true if pointer to value of oLHS is less than pointer to value of oRHS, false otherwise

◆ operator<() [2/4]

template<typename T, typename U>
bool adtf::ucom::ant::operator< ( const iobject_ptr< T > & i_oLHS,
const iobject_ptr< U > & i_oRHS )

Less-than-operator for two iobject_ptr with shared resource of same base.

Template Parameters
TType of the pointer to the shared resource
UType of the pointer to the shared resource (implicitly convertible to T)
Parameters
[in]i_oLHSLeft hand side shared object pointer containing the shared resource.
[in]i_oRHSRight hand side shared object pointer containing the shared resource.
Returns
true if i_oLHS is less than i_oRHS, false otherwise.

◆ operator<() [3/4]

template<typename T>
bool adtf::ucom::ant::operator< ( const iobject_ptr< T > & i_oLHS,
std::nullptr_t  )

Check whether an iobject_ptr<T> contains a shared pointer less than nullptr.

Template Parameters
TType of the pointer to the shared resource
Parameters
[in]i_oLHSShared object pointer containing the shared resource.
Returns
true if i_oLHS is less than a nullptr, false otherwise.

◆ operator<() [4/4]

template<typename T>
bool adtf::ucom::ant::operator< ( std::nullptr_t ,
const iobject_ptr< T > & i_oRHS )

Check whether an iobject_ptr<T> contains a shared pointer less than nullptr.

Template Parameters
TType of the pointer to the shared resource
Parameters
[in]i_oRHSShared object pointer containing the shared resource.
Returns
false if i_oRHS is less than a nullptr, true otherwise.

◆ operator<=() [1/4]

template<typename T>
bool adtf::ucom::ant::operator<= ( const forward_iterator< T > & oLHS,
const forward_iterator< T > & oRHS )
inlinenoexcept

Less-than-or-equal operator for forward_iterator.

Template Parameters
TValue type of the container the iterator operates on
Parameters
[in]oLHSLeft hand side iterator object
[in]oRHSRight hand side iterator object
Returns
true if pointer to value of oLHS is less than or equal pointer to value of oRHS, false otherwise

◆ operator<=() [2/4]

template<typename T, typename U>
bool adtf::ucom::ant::operator<= ( const iobject_ptr< T > & i_oLHS,
const iobject_ptr< U > & i_oRHS )

Less-than-or-equal-operator for two iobject_ptr with shared resource of same base.

Template Parameters
TType of the pointer to the shared resource
UType of the pointer to the shared resource (implicitly convertible to T)
Parameters
[in]i_oLHSLeft hand side shared object pointer containing the shared resource.
[in]i_oRHSRight hand side shared object pointer containing the shared resource.
Returns
true if i_oLHS is less than or equal to i_oRHS, false otherwise.

◆ operator<=() [3/4]

template<typename T>
bool adtf::ucom::ant::operator<= ( const iobject_ptr< T > & i_oLHS,
std::nullptr_t  )

Check whether an iobject_ptr<T> contains a shared pointer less than or equal to nullptr.

Template Parameters
TType of the pointer to the shared resource
Parameters
[in]i_oLHSShared object pointer containing the shared resource.
Returns
true if i_oLHS is less than or equal to nullptr, false otherwise.

◆ operator<=() [4/4]

template<typename T>
bool adtf::ucom::ant::operator<= ( std::nullptr_t ,
const iobject_ptr< T > & i_oRHS )

Check whether an iobject_ptr<T> contains a shared pointer less than or equal to nullptr.

Template Parameters
TType of the pointer to the shared resource
Parameters
[in]i_oRHSShared object pointer containing the shared resource.
Returns
false if i_oRHS is less than or equal to nullptr, true otherwise.

◆ operator==() [1/6]

template<typename T>
bool adtf::ucom::ant::operator== ( const forward_iterator< T > & oLHS,
const forward_iterator< T > & oRHS )
inlinenoexcept

Equality operator for forward_iterator.

Template Parameters
TValue type of the container the iterator operates on
Parameters
[in]oLHSLeft hand side iterator object
[in]oRHSRight hand side iterator object
Returns
true if pointer to value of oLHS is equal pointer to value of oRHS, false otherwise

◆ operator==() [2/6]

template<typename T, typename U>
bool adtf::ucom::ant::operator== ( const iobject_ptr< T > & i_oLHS,
const iobject_ptr< U > & i_oRHS )

Compare two iobject_ptr with shared resource of same base for equality.

Template Parameters
TType of the pointer to the shared resource
UType of the pointer to the shared resource (implicitly convertible to T)
Parameters
[in]i_oLHSLeft hand side shared object pointer containing the shared resource.
[in]i_oRHSRight hand side shared object pointer containing the shared resource.
Returns
true if i_oLHS and i_oRHS contain the same shared resource, false otherwise.

◆ operator==() [3/6]

template<typename T, typename U>
bool adtf::ucom::ant::operator== ( const iobject_ptr< T > & i_oLHS,
const U * i_pRHS )

Compare iobject_ptr<T> with plain pointer of the same type for equality.

Template Parameters
TType of the pointer to the shared resource
UType of the pointer to the shared resource (implicitly convertible to T)
Parameters
[in]i_oLHSShared object pointer containing the shared resource.
[in]i_pRHSOrdinary pointer to resource.
Returns
true if i_oLHS and i_pRHS point to the same address, false otherwise.

◆ operator==() [4/6]

template<typename T>
bool adtf::ucom::ant::operator== ( const iobject_ptr< T > & i_oLHS,
std::nullptr_t  )

Compare iobject_ptr<T> with nullptr type for equality.

Template Parameters
TType of the pointer to the shared resource
Parameters
[in]i_oLHSShared object pointer containing the shared resource.
Returns
true if i_oLHS contains a nullptr, false otherwise.

◆ operator==() [5/6]

template<typename T, typename U>
bool adtf::ucom::ant::operator== ( const T * i_pLHS,
const iobject_ptr< U > & i_oRHS )

Compare iobject_ptr<T> with plain pointer of the same type for equality.

Template Parameters
TType of the pointer to the shared resource
UType of the pointer to the shared resource (implicitly convertible to T)
Parameters
[in]i_pLHSOrdinary pointer to resource.
[in]i_oRHSShared object pointer containing the shared resource.
Returns
true if i_pLHS and i_oRHS point to the same address, false otherwise.

◆ operator==() [6/6]

template<typename T>
bool adtf::ucom::ant::operator== ( std::nullptr_t ,
const iobject_ptr< T > & i_oRHS )

Compare iobject_ptr<T> with nullptr type for equality.

Template Parameters
TType of the pointer to the shared resource
Parameters
[in]i_oRHSShared object pointer containing the shared resource.
Returns
true if i_oRHS contains a nullptr, false otherwise.

◆ operator>() [1/4]

template<typename T>
bool adtf::ucom::ant::operator> ( const forward_iterator< T > & oLHS,
const forward_iterator< T > & oRHS )
inlinenoexcept

Greater-than operator for forward_iterator.

Template Parameters
TValue type of the container the iterator operates on
Parameters
[in]oLHSLeft hand side iterator object
[in]oRHSRight hand side iterator object
Returns
true if pointer to value of oLHS is greater than pointer to value of oRHS, false otherwise

◆ operator>() [2/4]

template<typename T, typename U>
bool adtf::ucom::ant::operator> ( const iobject_ptr< T > & i_oLHS,
const iobject_ptr< U > & i_oRHS )

Greater-than-operator for two iobject_ptr with shared resource of same base.

Template Parameters
TType of the pointer to the shared resource
UType of the pointer to the shared resource (implicitly convertible to T)
Parameters
[in]i_oLHSLeft hand side shared object pointer containing the shared resource.
[in]i_oRHSRight hand side shared object pointer containing the shared resource.
Returns
true if i_oLHS is greater than i_oRHS, false otherwise.

◆ operator>() [3/4]

template<typename T>
bool adtf::ucom::ant::operator> ( const iobject_ptr< T > & i_oLHS,
std::nullptr_t  )

Check whether an iobject_ptr<T> contains a shared pointer greater than nullptr.

Template Parameters
TType of the pointer to the shared resource
Parameters
[in]i_oLHSShared object pointer containing the shared resource.
Returns
true if i_oLHS is greater than a nullptr, false otherwise.

◆ operator>() [4/4]

template<typename T>
bool adtf::ucom::ant::operator> ( std::nullptr_t ,
const iobject_ptr< T > & i_oRHS )

Check whether an iobject_ptr<T> contains a shared pointer greater than nullptr.

Template Parameters
TType of the pointer to the shared resource
Parameters
[in]i_oRHSShared object pointer containing the shared resource.
Returns
false if i_oRHS is greater than a nullptr, true otherwise.

◆ operator>=() [1/4]

template<typename T>
bool adtf::ucom::ant::operator>= ( const forward_iterator< T > & oLHS,
const forward_iterator< T > & oRHS )
inlinenoexcept

Greater-than-or-equal operator for forward_iterator.

Template Parameters
TValue type of the container the iterator operates on
Parameters
[in]oLHSLeft hand side iterator object
[in]oRHSRight hand side iterator object
Returns
true if pointer to value of oLHS is greater than or equal pointer to value of oRHS, false otherwise

◆ operator>=() [2/4]

template<typename T, typename U>
bool adtf::ucom::ant::operator>= ( const iobject_ptr< T > & i_oLHS,
const iobject_ptr< U > & i_oRHS )

Greater-than-or-equal-operator for two iobject_ptr with shared resource of same base.

Template Parameters
TType of the pointer to the shared resource
UType of the pointer to the shared resource (implicitly convertible to T)
Parameters
[in]i_oLHSLeft hand side shared object pointer containing the shared resource.
[in]i_oRHSRight hand side shared object pointer containing the shared resource.
Returns
true if i_oLHS is greater than or equal to i_oRHS, false otherwise.

◆ operator>=() [3/4]

template<typename T>
bool adtf::ucom::ant::operator>= ( const iobject_ptr< T > & i_oLHS,
std::nullptr_t  )

Check whether an iobject_ptr<T> contains a shared pointer greater than or equal to nullptr.

Template Parameters
TType of the pointer to the shared resource
Parameters
[in]i_oLHSShared object pointer containing the shared resource.
Returns
true if i_oLHS is greater than or equal to nullptr, false otherwise.

◆ operator>=() [4/4]

template<typename T>
bool adtf::ucom::ant::operator>= ( std::nullptr_t ,
const iobject_ptr< T > & i_oRHS )

Check whether an iobject_ptr<T> contains a shared pointer greater than or equal to nullptr.

Template Parameters
TType of the pointer to the shared resource
Parameters
[in]i_oRHSShared object pointer containing the shared resource.
Returns
false if i_oRHS is greater than or equal to nullptr, true otherwise.

◆ reset_object_ptr() [1/2]

template<typename T>
tResult adtf::ucom::ant::reset_object_ptr ( iobject_ptr< const T > & o_oDest,
const iobject_ptr< T > & i_oSrc )

Reset an iobject_ptr with const T - specialization for best performance.

Template Parameters
TType of the shared resource of the object_ptr to reset
TSrcSrc object_ptr<> type to cast from
Parameters
[out]o_oDestGets reset with the object of const T
[in]i_oSrcProviding the object to reset o_oDest with.
Returns
Standard error code
Return values
o_oDest.Reset(...)else

◆ reset_object_ptr() [2/2]

template<typename T, typename U>
tResult adtf::ucom::ant::reset_object_ptr ( iobject_ptr< const T > & o_oDest,
const iobject_ptr< U > & i_oSrc )

Reset an iobject_ptr with const T.

Template Parameters
TType of the shared resource of the object_ptr to reset
UType of the shared resource managed by the object_ptr to convert from. Must be convertible to type T using ucom_cast()
Parameters
[out]o_oDestGets reset with the object of const T
[in]i_oSrcProviding the object to reset o_oDest with.
Returns
Standard error code
Return values
ERR_NOERROREverything went fine
ERR_NO_INTERFACEType U does not expose interface type T (ucom_cast failed). *this is reset to nullptr
o_oDest.Reset(...)else

◆ ucom_cast()

template<typename InterfacePointerType, typename ObjectPointerType>
InterfacePointerType adtf::ucom::ant::ucom_cast ( ObjectPointerType i_pObject)
noexcept

Used to cast arbitrary interface types within the UCOM.

Template Parameters
InterfacePointerTypePointer to (optionally cv-qualified) complete interface type
Parameters
[in]i_pObjectPointer to object of type IObject which shall expose the queried interface.
Returns
Pointer to queried interface if the exposed interface could be found, nullptr otherwise.
Note
Works const-correct. If i_pObject is a const object of type IObject, this needs to be taken into consideration when giving the template parameter type.
See also
Page uCOM Cast for further information

◆ ucom_object_ptr_cast()

template<typename T>
object_ptr< T > adtf::ucom::ant::ucom_object_ptr_cast ( object_ptr< T > oCasted)

Create an object_ptr with an already shared resource of implicitly convertible type.

Template Parameters
TType of the shared resource of the object_ptr to create
UType of the shared resource managed by the object_ptr to convert from. Must be convertible to type T using ucom_cast()
Parameters
[in]i_oOtherThe source to create the new object_ptr from.
Returns
The new object_ptr managing the shared resource of type U converted to type T. If the ucom_cast failed, the returned object_ptr is empty.