ADTF  3.18.2
ADTF Base SDK

ADTF Base SDK

The ADTF Base SDK defines basic implementation for an ADTF System using the uCOM Architecture. The main header to include is:

#include <adtf_base.h>

Introduction

The main focus of this package is to define a collection of ADTF basic functionality to be used in serveral components. It enriches the ADTF uCOM3 SDK classes with certain additional types.

The most important implementation details are:

  • Definition of ADTF Runtime and ADTF Runlevel
  • Property handling and confinguration interface
  • Binary compatible ant::IString interface to retrieve strings from other plugin in a thread-safe way
  • Binary compatible memory writing and reading interface ant::IRawMemory

A runnable component is easily described by a IRunnable and defines the basic concept for a callable function.

Dependency

The ADTF Base SDK depends on the ADTF uCOM3 SDK.

C++ Classes

Namespaces

adtf

Namespace for entire ADTF SDK.

adtf::base
Namespace for the ADTF Base SDK.

Main Classes and interfaces

ADTF Base Types

tNanoSeconds

A timestamp with nanosecond precision.

duration_cast
Duration cast base template to converted between different time resolution.

ADTF Base String

IString

The IString interface provides methods for getting and setting strings through abstract interfaces.

adtf_string

Wrapping template for a rvalue reference of an IString interface for the type T (see Supported types for adtf_string<T> for writing and reading strings via interface IString).

adtf_string_forward
Implementation concept template for user defined adtf_string type support (see Supported types for adtf_string<T> for writing and reading strings via interface IString).

Supported types for adtf_string<T> for writing and reading strings via interface IString

Within ADTF the ant::IString is used to read strings out of another plugin in a trhead-safe way:

Following types are supported via ant::adtf_string_forward template within ADTF SDK:
  • const char
  • std::string
  • adtf::util::cString
  • adtf::util::cFilename
User types
  • For user type you need to specialize the ant::adtf_string_forward template. This will be done for QString within the ui package.

ADTF Base Rawmemory

IRawMemory

The IRawMemory interface provides methods for getting and setting memory values through abstract interfaces.

adtf_memory

Template class implementation for the ant::IRawMemory interface (see Supported types for adtf_memory<T> for writing and reading Samples).

adtf_memory_forward
Concept template class for non trivial penguin::adtf_memory types of type T to specialize the usage of adtf_memory<T> (see Supported types for adtf_memory<T> for writing and reading Samples).

Supported types for adtf_memory<T> for writing and reading Samples

Within ADTF the ant::IRawMemory is used to read and write the content of any Samples.

Following trivial types are supported within ADTF SDK:
  • int8_t, uint8_t, ..., int64_t, int64_t
  • float, double
  • bool
  • char
  • static arrays of the above types (also std::array types)
  • any struct definiton with members of the above types
Following non-trivial types are supported via ant::adtf_memory_forward template within ADTF SDK:
  • adtf_util::cMemoryBlock
  • std::string
  • std::vector with trivial value_type
Non trivial user types

ADTF Base Configuration

IProperty

The IProperty interface provides methods for getting and setting property values, name of the property and its subproperties.

IProperties

The IProperty interface provides methods for getting and setting property values, name of the property and its subproperties.

property

Property property implementation template.

property_value

IConfiguration

ucom Interface to a objects configuration.

get_property

Implementation helper template to enriches an implementation with the default implementation of IConfiguration.

set_property
Set the property.

ADTF Base Runnable

IRunnable

The Runnable interface defines common methods for a running component.

cRunnable

Empty Runnable helper implementation.

runnable

ADTF Base Runtime Types

cADTFRuntime

tADTFRunLevel

The ADTF Runtime Level State are used to define a ADTF Runtime specialization for a adtf::ucom::ant::runtime.

tADTFRunLevelDescription

ADTF Base Error handling

nested_exceptions_to_string

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

current_exception_to_string

Trys to format the current exception into a string.

current_exception_to_result

Converts the current exception object into a tResult.

IErrorHandling

Error handling interface.

cErrorHandler

Base class for implementing error handlers.

cErrorChecker

Error checker implementation for easy use of the error handler elasto::IErrorHandling::IErrorHandler.

handle_error
Convenience method to report an error for short lived objects.

ADTF Base Services

ADTF was designed as service oriented runtime system. (see System Service). The ADTF base package defines service interfaces which are not necessarily implemented within the package itself, but provided as common delivery container.

services::IApplication

The IApplication interface wraps a generic processing loop.

services::ILogging

Interface for the ADTF Logging Service.

services::IMacroResolver

The IMacroResolver interface provides methods for resolving macros in strings.

services::IADTFFileSupport

services::IPlayer

ADTF Playback Service Control interface to control the ADTF Player.

services::IRecorder

services::ISignalRegistry