Description
Shows how to share functionality between filters.
Prebuilt Binaries
Source Code
./examples/demo_adtfplugins/demo_interface_binding/
Interface
print_intf.h
#pragma once
{
public:
ADTF_IID(IPrintInterface,
"demo_print_interface.demo.adtf.iid");
public:
virtual void Print(const char* strString) = 0;
};
{
public:
void Print(const char* strString) override
{
}
};
#define ADTF_IID(_interface, _striid)
Definition adtf_iid.h:19
#define LOG_INFO(...)
Logs an info message.
Definition log.h:388
ant::IObject IObject
Alias always bringing the latest version of ant::IObject into scope.
Definition object_intf.h:109
Client
demo_interface_binding_client_filter.h
#pragma once
#include <print_intf.h>
#ifndef ADTF_EXAMPLES_CID
#define ADTF_EXAMPLES_CID ".local.cid"
#endif
{
public:
"demo_interface_binding.filter" ADTF_EXAMPLES_CID,
"Demo Interface Binding Client");
cInterfaceBindingClientFilter();
~cInterfaceBindingClientFilter() override;
private:
};
A_UTILS_NS::cResult tResult
For backwards compatibility and to bring latest version into scope.
Definition result.h:736
#define ADTF_CLASS_ID_NAME(_class, _strcid, _strclabel)
Definition class_id.h:33
virtual tResult Process(base::flash::tNanoSeconds tmTrigger, streaming::ant::IRunner *pRunner)
Definition graph_object.h:66
Definition runner_intf.h:24
A timestamp with nanosecond precision.
Definition chrono.h:23
demo_interface_binding_client_filter.cpp
#include "demo_interface_binding_client_filter.h"
#include <cinttypes>
using namespace adtf::util;
cInterfaceBindingClientFilter::cInterfaceBindingClientFilter()
{
m_oInterfaceClient = CreateInterfaceClient<IPrintInterface>("printer_client");
SetDescription("printer_client", "Interface client to call a printer function from a server");
CreateRunner("trigger", cTimerTriggerHint(std::chrono::seconds{1}));
SetDescription("trigger", "Runner to periodically trigger the function which prints the timestamp of the trigger");
SetDescription("Use this filter to provide a client which accesses the printer interface from Demo Interface Printer (see Streaming Sources).");
SetHelpLink("$(ADTF_DIR)/doc/html/page_demo_interface_binding_client.html");
}
cInterfaceBindingClientFilter::~cInterfaceBindingClientFilter() = default;
{
m_oInterfaceClient->Print(cString::Format("time is %" PRIi64, tmTimeOfTrigger.nCount));
}
#define RETURN_NOERROR
Return status ERR_NOERROR, which requires the calling function's return type to be tResult.
Definition result.h:29
Namespace for the ADTF Base SDK.
Definition adtf_base_type_traits.h:13
Namespace for the ADTF Filter SDK.
Definition configurable_runner.h:18
Namespace for the ADTF Streaming SDK.
Definition bindingproxyinport.h:14
Namespace for the ADTF uCOM SDK.
Definition adtf_system.h:324
Server
demo_interface_binding_server_filter.h
#pragma once
#include <print_intf.h>
#ifndef ADTF_EXAMPLES_CID
#define ADTF_EXAMPLES_CID ".local.cid"
#endif
{
public:
"demo_interface_binding_server.filter" ADTF_EXAMPLES_CID,
"Demo Interface Binding Server");
cInterfaceBindingServerFilter();
~cInterfaceBindingServerFilter() override;
private:
};
Definition object_ptr.h:384
demo_interface_binding_server_filter.cpp
#include "demo_interface_binding_server_filter.h"
using namespace adtf::util;
cInterfaceBindingServerFilter::cInterfaceBindingServerFilter()
{
CreateInterfaceServer<IPrintInterface>("printer_server", m_pPrinter);
SetDescription("printer_server", "Interface server to provide access to a function for printing");
SetDescription("Use this filter to provide a server for a printer Interface (e.g. used by 'Demo Interface Binding Client', see Filters");
SetHelpLink("$(ADTF_DIR)/doc/html/page_demo_interface_binding_server.html");
}
cInterfaceBindingServerFilter::~cInterfaceBindingServerFilter() = default;
object_ptr< Implementation > make_object_ptr(Args &&... args)
Alias always bringing the latest version of ant::make_object_ptr() into scope.
Definition object_ptr_utilities.h:129
Plugin
plugin.cpp
#include "demo_string_sending_filter.h"
#include "demo_string_receiving_filter.h"
cDemoStringSending,
cDemoStringReceiving);
#define ADTF_PLUGIN(__plugin_identifier,...)
Definition adtf_plugin.h:29