35 ucom::ant::cClassInfo,
36 runtime_behaviour<interface_binding<data_binding<named_graph_object<IFilter>>>>>
132 template <
typename DATABINDING_BEHAVIOUR_CLASS>
134 adtf_util::cStringList lstItems)
137 for (
const auto& itElem : lstItems)
140 if (
IS_FAILED(oComponent.FindPin(itElem, pCurrentItem)))
142 if (
IS_FAILED(oComponent.FindRunner(itElem, pCurrentItem)))
147 lstListOfItemsForPipe.PushObject(pCurrentItem);
152 return pInnerPipe->Open();
175 template <
typename DATABINDING_BEHAVIOUR_CLASS>
183 if (
IS_FAILED(oComponent.FindPin(strSource, pCurrentItem)))
185 if (
IS_FAILED(oComponent.FindRunner(strSource, pCurrentItem)))
190 lstListOfItemsForPipe.PushObject(pCurrentItem);
194 lstListOfItemsForPipe.PushObject(ucom::ucom_object_ptr_cast<ITriggerPipeItem>(pRunner));
199 return pInnerPipe->Open();
211 template<
typename INTERFACE>
213 const char* strServerName,
219 ucom_object_ptr_cast<IObject>(pServerInterface));
231 template<
typename INTERFACE>
250 const char* strNameOfRunner,
253 return oFilter.RegisterRunner(strNameOfRunner, oRunnable);
264 template <
typename DATABINDING_BEHAVIOUR_CLASS,
typename RUN_FUNC>
272 if (
IS_FAILED(oComponent.FindPin(strSource, pCurrentItem)))
274 if (
IS_FAILED(oComponent.FindRunner(strSource, pCurrentItem)))
279 lstListOfItemsForPipe.PushObject(pCurrentItem);
280 ucom::object_ptr<IRunner> pRunner = ucom::make_object_ptr<quiet::cRunner>(strNameOfRunner, oRunFunc);
283 lstListOfItemsForPipe.PushObject(ucom::ucom_object_ptr_cast<ITriggerPipeItem>(pRunner));
288 return pInnerPipe->Open();
301 template<
typename Interface,
typename InterfaceBinding>
303 const char* strServerName,
309 ucom_object_ptr_cast<IObject>(pServerInterface));
322 template<
typename Interface,
typename InterfaceBinding>
335 using ant::cFilterBase;
336 using flash::create_inner_pipe;
#define IS_FAILED(s)
Check if result is failed.
#define RETURN_IF_FAILED(s)
Return if expression is failed, which requires the calling function's return type to be tResult.
#define RETURN_NOERROR
Return status ERR_NOERROR, which requires the calling function's return type to be tResult.
#define RETURN_ERROR(code)
Return specific error code, which requires the calling function's return type to be tResult.
A common result class usable as return value throughout.
The Runnable interface defines common methods for a running component.
Runnable helper implementaton template.
tFilterState
specifies the several types of filter states
Binding type generation template to initialize a BindingType with the information of the INTERFACE ty...
virtual tResult RegisterPin(const ucom::ant::iobject_ptr< IPin > &pIPin)
Registers a Pin in a pin list.
The cFilterBase class implements a basic filter that supports the ant::IFilter interfaces.
cFilterBase()
Constructor.
virtual tResult RegisterBindingObject(const ucom::ant::iobject_ptr< IBindingObject > &pBindingObject)
RegisterBindingObject will register the given pBindingObject within the internal registry.
ucom::object_ptr< services::ant::IReferenceClock > _clock
A reference to the clock service.
tResult Shutdown(tInitStage eStage) override
Implements the default cFilterLevelmachine state machine call.
cFilterLevelmachine::tInitStage tInitStage
private d-pointer
virtual tResult RegisterPin(const ucom::ant::iobject_ptr< IPin > &pIPin)
gets cDataBinding RegisterPin Variant visible
virtual tResult RegisterRunner(const ucom::ant::iobject_ptr< IRunner > &pRunner)
Registers and publishes a IRunner object to the IRuntimeBehaviour.
tResult SetState(IFilter::tFilterState eState) override
Sets the state of the filter.
virtual ~cFilterBase()
Destructor.
tResult Init(tInitStage eStage) override
Implements the default cFilterLevelmachine state machine call.
tResult Stop() override
Implements the default cFilterLevelmachine state machine calls.
tResult Start() override
Implements the default cFilterLevelmachine state machine calls.
tInitStage
The Filters InitStages will be used for the cFilterLevelmachine::Init and cFilterLevelmachine::Shutdo...
virtual tResult RegisterBindingObject(const ucom::ant::iobject_ptr< IBindingObject > &pBindingObject)
RegisterBindingObject will register the given pBindingObject within the internal registry.
virtual tResult RegisterRunner(const ucom::ant::iobject_ptr< IRunner > &pRunner)
Registers and publishes a IRunner object to the IRuntimeBehaviour.
virtual tResult RegisterInnerPipe(const ucom::ant::iobject_ptr< ITriggerPipe > &pTriggerPipe)
Registers and publishes an inner ITriggerPipe object to the IRuntimeBehaviour.
Base object pointer to realize binary compatible reference counting in interface methods.
container type template for a set of object_ptr This template will provide a container for object_ptr...
Object pointer implementation used for reference counting on objects of type IObject.
Use this template if you want to implement an ucom::ant::IObject based Interface and/or subclass an e...
#define A_UTILS_D(__pclassname_)
Helper macro for d-pattern definitions.
Copyright © Audi Electronics Venture GmbH.
Copyright © Audi Electronics Venture GmbH.
Copyright © Audi Electronics Venture GmbH.
Copyright © Audi Electronics Venture GmbH.
Copyright © Audi Electronics Venture GmbH.
Copyright © Audi Electronics Venture GmbH.
string_base< cStackString > cString
cString implementation for a stack string which works on stack if string is lower than A_UTILS_DEFAUL...
tResult create_server(cFilterBase &oFilter, const char *strServerName, const adtf::ucom::iobject_ptr< INTERFACE > &pServerInterface)
Creates a binding server object for the given INTERFACE type and register it on the cFilterBase insta...
tResult create_runner(cFilterBase &oFilter, const char *strNameOfRunner, adtf::base::ant::IRunnable &oRunnable)
Creates a runner on the given cFilterBase and connect it to the given Runnable You only need to imple...
tResult create_inner_pipe(DATABINDING_BEHAVIOUR_CLASS &oComponent, adtf_util::cStringList lstItems)
Creates a Trigger Pipe and registers it at the given oFilter instance.
tResult create_client(cFilterBase &oFilter, const char *strClientName)
Creates a binding client object for the given INTERFACE type and register it on the cFilterBase insta...
tResult create_trigger_pipe(const char *strNameOfPipe, adtf::ucom::ant::iobject_ptr< ITriggerPipe > &pTriggerPipe, adtf::ucom::ant::object_list< ITriggerPipeItem > lstNextItems)
Creates a Trigger Pipe with given items in lstNextItems.
tResult create_client(InterfaceBinding &oInterfaceBinding, const char *strClientName)
Creates a binding client object for the given INTERFACE type and register it on the cFilterBase insta...
tResult create_server(InterfaceBinding &oInterfaceBinding, const char *strServerName, const adtf::ucom::iobject_ptr< Interface > &pServerInterface)
Creates a binding server object for the given INTERFACE type and register it on the cFilterBase insta...
std::enable_if< !std::is_base_of< enable_object_ptr_from_this< typename std::remove_cv< Implementation >::type >, typename std::remove_cv< Implementation >::type >::value, object_ptr< Implementation > >::type make_object_ptr(Args &&... args)
Create an instance of type object_ptr with Implementation as the shared resource.
Namespace for the ADTF uCOM3 SDK.
Namespace for entire ADTF SDK.
Copyright © Audi Electronics Venture GmbH.
Copyright © Audi Electronics Venture GmbH.
Copyright © Audi Electronics Venture GmbH.