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

Namespace for the ADTF uCOM SDK. More...

Namespaces

namespace  ant
 Namespace for all functionality of the ADTF UCOM SDK provided since v3.0.
 
namespace  catwo
 Namespace for all functionality of the ADTF UCOM SDK provided since v3.2.
 
namespace  detail
 Namespace for all internally used functionality implemented.
 
namespace  hollow
 Namespace for all functionality of the ADTF UCOM SDK provided since v3.7.
 
namespace  nitro
 Namespace for all functionality of the ADTF UCOM SDK provided since v3.13.
 
namespace  spider
 Namespace for all functionality of the ADTF UCOM SDK provided since v3.18.
 
namespace  testing
 Namespace for all provided testing functionality helper.
 
namespace  vision
 Namespace for all functionality of the ADTF UCOM SDK provided since v3.21.
 

Classes

class  cClassInfo
 Alias always bringing the latest version of ant::cClassInfo into scope. More...
 
class  cEventSource
 
class  class_factory
 Alias always bringing the latest version of ant::class_factory into scope. More...
 
class  cLockedObject
 Alias always bringing the latest version of ant::cLockedObject into scope. More...
 
class  cPlugin
 
class  cPooledClassFactory
 Always bringing the latest version of ant::cPooledClassFactory into scope. More...
 
class  cRuntime
 
class  cService
 
class  cSharedLockedObject
 Alias always bringing the latest version of ant::cLockedObject into scope. More...
 
class  cStream
 
class  function_wrapper
 
class  IEventSink
 Alias always bringing the latest version of ant::IEventSink into scope. More...
 
class  IEventSource
 Alias always bringing the latest version of ant::IEventSource into scope. More...
 
class  ifunction
 
class  IInputStream
 
class  ILockedObject
 Alias always bringing the latest versions into scope. More...
 
class  ILogger
 
class  iobject_enum
 
class  iobject_ptr_locked
 
class  iobject_ptr_shared_locked
 
class  IOutputStream
 
class  IPlugin
 Alias always bringing the latest version of ant::IPlugin into scope. More...
 
class  IPluginLogging
 
class  IRuntime
 Alias always bringing the latest version of ant::IRuntime into scope. More...
 
class  IRuntimeHook
 Alias always bringing the latest version of ant::IRuntimeHook into scope. More...
 
class  IRuntimeStartup
 
class  ISharedLockedObject
 
class  IStream
 Alias always bringing the latest version of ant::IStream into scope. More...
 
class  level_machine
 
class  object
 
class  object_enum
 
class  object_ptr
 Alias always bringing the latest version of ant::object_ptr into scope. More...
 
class  object_ptr_locked
 
class  object_ptr_shared_locked
 
struct  plugin_initializer
 
class  plugin_template
 
struct  plugin_version_default
 
class  runtime
 
struct  ucom_type_streamer
 

Typedefs

template<typename... Interfaces>
using interface_expose = ant::interface_expose<Interfaces...>
 Alias bringing the latest version of meta struct template ant::interface_expose into scope.
 
template<typename... ParentTypes>
using inherit_from = ant::inherit_from<ParentTypes...>
 Alias bringing the latest version of meta struct template ant::inherit_from into scope.
 
template<typename... InterfaceTypes>
using expose_interfaces = ant::expose_interfaces<InterfaceTypes...>
 Alias bringing the latest version of meta struct template ant::expose_interfaces into scope.
 
template<typename... Types>
using default_object = ant::default_object<Types...>
 Alias bringing the latest version of meta struct template ant::default_object into scope.
 
template<typename BASE_CLASS, typename EXTEND_INTERFACE, typename Child>
using extend_object = ant::extend_object<BASE_CLASS, EXTEND_INTERFACE, Child>
 Alias bringing the latest version of meta struct template ant::extend_object into scope.
 
using IClassFactory = ant::IClassFactory
 Alias always bringing the latest version of ant::IClassFactory into scope.
 
using IClassInfo = ant::IClassInfo
 Alias always bringing the latest version of ant::IClassInfo into scope.
 
using tNamedVersion = ant::tNamedVersion
 Alias alwas bringing the latest version of ant::tNamedVersion into scope.
 
using tDependencyDescription = ant::tDependencyDescription
 Alias alwas bringing the latest version of ant::tDependencyDescription into scope.
 
using IDevice = ant::IDevice
 Alias always bringing the latest version of ant::IDevice into scope.
 
template<typename T>
using IForwardIterator = ant::IForwardIterator<T>
 Alias always bringing the latest version of ant::IForwardIterator into scope.
 
template<typename T>
using IBidirectionalIterator = ant::IBidirectionalIterator<T>
 Alias always bringing the latest version of ant::IBidirectionalIterator into scope.
 
template<typename T>
using IRandomAccessIterator = ant::IRandomAccessIterator<T>
 Alias always bringing the latest version of ant::IRandomAccessIterator into scope.
 
template<typename T, template< typename > class IteratorType = ant::forward_iterator>
using iterator_adapter = ant::iterator_adapter<T, IteratorType>
 Alias always bringing the latest version of ant::iterator_adapter into scope.
 
template<typename T>
using pointer_iterator = ant::pointer_iterator<T>
 Alias always bringing the latest version of ant::pointer_iterator into scope.
 
template<typename T>
using forward_iterator = ant::forward_iterator<T>
 Alias always bringing the latest version of ant::forward_iterator into scope.
 
using IObjectCompatibility = ant::IObjectCompatibility
 Alias always bringing the latest version of ant::IObjectCompatibility into scope.
 
using IObjectInfo = ant::IObjectInfo
 Alias always bringing the latest version of ant::IObjectInfo into scope.
 
using IObject = ant::IObject
 Alias always bringing the latest version of ant::IObject into scope.
 
using IObjectPool = ant::IObjectPool
 Alias always bringing the latest version of ant::IObjectPool into scope.
 
using IPluginInfo = ant::IPluginInfo
 Alias always bringing the latest version of ant::IPlugin into scope.
 
using IScriptable = ant::IScriptable
 Alias always bringing the latest version of ant::IScriptable into scope.
 
using ISerializable = ant::ISerializable
 Alias always bringing the latest version of ant::ISerializable into scope.
 
using IService = ant::IService
 Alias always bringing the latest version of ant::IService into scope.
 
template<class T>
using iobject_ptr = ant::iobject_ptr<T>
 Alias always bringing the latest version of ant::iobject_ptr into scope.
 
template<class T>
using enable_object_ptr_from_this = ant::enable_object_ptr_from_this<T>
 Alias always bringing the latest version of ant::enable_object_ptr_from_this into scope.
 
template<class T>
using weak_object_ptr = ant::weak_object_ptr<T>
 Alias always bringing the latest version of ant::weak_object_ptr into scope.
 
using cPluginInfo = ant::cPluginInfo
 Alias always bringing the latest version of ant::IPlugin into scope.
 
template<typename Signature>
using ifunction_ptr
 
template<typename T>
using iobject_list
 
template<typename T>
using iobject_vector
 
template<typename T, typename INTERFACE_TYPE = T>
using object_list
 
template<typename T, typename INTERFACE_TYPE = T>
using object_vector
 

Functions

template<typename Interface>
constexpr const char * get_iid () noexcept
 Alias bringing the latest version of ant::get_iid() into scope.
 
template<typename classT>
constexpr iterator_adapter< const tDependencyDescription, pointer_iteratorget_class_dependencies ()
 Alias always bringing the latest version of ant::get_class_dependencies into scope.
 
template<typename classT>
constexpr const char * get_class_id ()
 Alias always bringing the latest version of ant::get_class_id into scope.
 
template<typename classT>
constexpr const char * get_class_label ()
 Alias always bringing the latest version of ant::get_class_label into scope.
 
template<typename classT>
object_ptr< const adtf::ucom::ant::IClassInfoget_class_info ()
 Alias always bringing the latest version of ant::get_class_info() into scope.
 
template<typename classT>
constexpr const cClassInfoget_class_info_reference ()
 Alias always bringing the latest version of ant::get_class_info_reference() into scope.
 
template<typename ... Args>
constexpr tNamedVersion add_version (const char *i_strProduct, Args... args)
 Alias always bringing the latest version of ant::add_version() into scope.
 
template<typename classT>
constexpr iterator_adapter< const tNamedVersion, pointer_iteratorget_class_versions ()
 Alias always bringing the latest version of ant::get_class_versions() into scope.
 
std::string nested_exceptions_to_string (const std::exception &error)
 
std::string current_exception_to_string ()
 
cResult current_exception_to_result (const char *file, size_t line, const char *function)
 
template<typename Callable, typename Signature = detail::signature_t<Callable>>
function_wrapper< Signature > make_function (Callable &&fnCallback)
 
template<typename Callable, typename Signature = detail::signature_t<Callable>>
ant::object_ptr< ifunction< Signature > > make_function_ptr (Callable &&fnCallback)
 
template<typename Signature>
std::function< Signature > to_std_function (const ifunction< Signature > &fnFunction)
 
template<typename T>
object_ptr< T > ucom_object_ptr_cast (object_ptr< T > oCasted)
 Alias always bringing the latest version of ant::ucom_object_ptr_cast() into scope.
 
template<typename Implementation, typename... Args>
object_ptr< Implementation > make_object_ptr (Args &&... args)
 Alias always bringing the latest version of ant::make_object_ptr() into scope.
 
template<typename T, typename U>
tResult reset_object_ptr (iobject_ptr< const T > &o_oDest, const iobject_ptr< U > &i_oSrc)
 Alias always bringing the latest version of ant::reset_object_ptr() into scope.
 
template<typename T>
ant::object_ptr< T > ucom_object_ptr_const_cast (const ant::iobject_ptr< const T > &i_oOther)
 Alias always bringing the latest version of penguin::ucom_object_ptr_const_cast() into scope.
 
template<typename Implementation, bool Fuse, typename Allocator, typename... Args>
object_ptr< Implementation > allocate_object_ptr (Allocator &&allocator, Args &&... args)
 Alias always bringing the latest version of vision::allocate_object_ptr() into scope.
 
tResult get_plugin (iobject_ptr< IPlugin > &pPlugin)
 
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)
 
tResult ucom_write_to_stream_buffer (IOutputStream &oOutStream, const void *pBuffer, size_t szBuffer, size_t &szCount)
 
tResult ucom_read_from_stream_buffer (const IInputStream &oInStream, 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_string (const IInputStream &oInStream, adtf_util::cString &strValue, size_t &szReadCount)
 
template<typename InterfacePointerType, typename ObjectPointerType>
InterfacePointerType ucom_cast (ObjectPointerType i_pObject) noexcept
 Alias always bringing the latest version of ant::ucom_cast() into scope.
 

Detailed Description

Namespace for the ADTF uCOM SDK.

Within this namespace all interfaces, classes and functions always refer to their last revised implementation (version namespace). When using types defined within this namespace it is guaranteed to always use the latest version of the types.

The ADTF uCOM3 SDK defines the underlaying architecture and programming model for ADTF.

The main focus of this package is to define the basics for adtf::ucom::IObject and the adtf::ucom::object_ptr. Interfaces are binary compatibly througout binary borders.

Additionally a plugin mechanism and the main IRuntime of a running system is provided.

Typedef Documentation

◆ ifunction_ptr

template<typename Signature>
using adtf::ucom::nitro::ifunction_ptr

Interface for shared pointers to iucom_function.

◆ iobject_list

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

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

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

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

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

Function Documentation

◆ current_exception_to_string()

std::string A_UTILS_NS::detail::current_exception_to_string ( )
inline

Trys to format the current exception into a string. This works for std::exception and tResult exception objects.

Returns
The formatted string.

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

template<typename Callable, typename Signature = detail::signature_t<Callable>>
function_wrapper< Signature > adtf::ucom::nitro::make_function ( Callable && fnCallback)
inline

creates a ucom_function object for the given callable.

Template Parameters
CallableThe callable type that should be exposed via the function object.
Parameters
fnCallbackThe callable that should be exposed via the function object.
Returns
a function object wrapping the given callable.

◆ make_function_ptr()

template<typename Callable, typename Signature = detail::signature_t<Callable>>
ant::object_ptr< ifunction< Signature > > adtf::ucom::nitro::make_function_ptr ( Callable && fnCallback)
inline

creates an object_ptr shared pointer to an ucom_function pointing to the given callable.

Template Parameters
CallableThe callable type that should be exposed via the shared pointer.
Parameters
fnCallbackThe callable that should be exposed via the shared pointer.
Returns
an object_ptr to an ucom_function pointing to the given callable.

◆ nested_exceptions_to_string()

std::string A_UTILS_NS::detail::nested_exceptions_to_string ( const std::exception & error)
inline

Formats nested std::exceptions into a string, line by line

Parameters
[in]errorthe exception
Returns
The formatted string.

◆ to_std_function()

template<typename Signature>
std::function< Signature > adtf::ucom::nitro::to_std_function ( const ifunction< Signature > & fnFunction)
inline

Helper conversion to a std::function object. Use this to forward an ifunction to STL alrorithms etc.

Parameters
[in]fnFunctionthe function object.