ADTF  3.18.2
sample_streaming_sink.h
Go to the documentation of this file.
1 
7 #pragma once
10 #include "graph_object.h"
11 
12 #include <memory>
13 
14 namespace adtf
15 {
16 namespace filter
17 {
18 namespace flash
19 {
20 
40  public ucom::catwo::object<streaming::ant::INamedGraphObject,
41  streaming::ant::IDataBinding,
42  streaming::ant::IInterfaceBinding,
43  streaming::ant::IRuntimeBehaviour,
44  streaming::ant::IDynamicDataBinding,
45  streaming::ant::IDynamicInterfaceBinding,
46  streaming::ant::IStreamingService,
47  streaming::ant::IStreamingSink,
48  streaming::ant::ISampleStreamingSink,
49  base::ant::IConfiguration>,
50  public cGraphObject,
52 {
53  public:
54  // this needs to be here because unfortunately multiple base classes have this as well (altough it is not needed at all)
55  template <typename T>
57 
59  ~cSampleStreamingSink() override;
60 
71  tResult Init() override;
72 
81  tResult StartStreaming() override;
82 
91  tResult StopStreaming() override;
92 
93  tResult SetName(const char* strName) override;
94  tResult GetName(base::ant::IString&& strName) const override;
95  tResult SetParent(const ucom::ant::IObject* poParentObject) override;
96  tResult GetParent(const ucom::ant::IObject*& poParentObject) const override;
97 
98  tResult GetPins(ucom::ant::iobject_list<streaming::ant::IPin>& oPins) const override;
99  tResult FindPin(const char* strName, ucom::ant::iobject_ptr<ucom::ant::IObject>& pPin) const override;
100 
101  tResult GetBindingObjects(ucom::ant::iobject_list<streaming::ant::IBindingObject>& lstBindingObject) override;
102  tResult GetBindingObjects(ucom::ant::iobject_list<const streaming::ant::IBindingObject>& lstBindingObject) const override;
103  tResult FindBindingObject(const char* strName,
104  ucom::ant::iobject_ptr<const ucom::ant::IObject>& pIBindingObject) const override;
105  tResult FindBindingObject(const char* strName,
106  ucom::ant::iobject_ptr<ucom::ant::IObject>& pIBindingObject) override;
107 
108  tResult GetRunners(ucom::ant::iobject_list<streaming::ant::IRunner>& lstRunners) const override;
109  tResult FindRunner(const char* strName, ucom::ant::iobject_ptr<ucom::ant::IObject>& pRunner) const override;
110  tResult GetInnerPipes(ucom::ant::iobject_list<streaming::ant::ITriggerPipe>& lstInnerTriggerPipes) const override;
111 
112  tResult RequestPin(const char* strName,
115  tResult RequestPin(const char* strName,
118 
119  tResult RequestBindingObject(const char* strName,
122  tResult RequestBindingObject(const char* strName,
125 
126  tResult SetState(tStreamingState eFilterState) override;
127  tStreamingState GetState() override;
128 
129  tResult GetProperties(ucom::ant::iobject_ptr<const base::ant::IProperties>& pProperties) const override;
130  tResult GetProperties(ucom::ant::iobject_ptr<base::ant::IProperties>& pProperties) override;
131  tResult AttachConfiguration(const char* strName, base::ant::IConfiguration& oAttachedConfiguration) override;
132  tResult DetachConfiguration(const char* strName) override;
133 
134  private:
135  class cImplementation;
136  std::unique_ptr<cImplementation> m_pImplementation;
137 };
138 
139 }
140 
141 namespace hollow
142 {
143 
146  public ucom::catwo::object<streaming::ant::INamedGraphObject,
147  streaming::ant::IDataBinding,
148  streaming::ant::IInterfaceBinding,
149  streaming::ant::IRuntimeBehaviour,
150  streaming::ant::IDynamicDataBinding,
151  streaming::ant::IDynamicInterfaceBinding,
152  streaming::ant::IStreamingService,
153  streaming::ant::IStreamingSink,
154  streaming::ant::ISampleStreamingSink,
155  base::ant::IConfiguration>,
156  public cGraphObject,
158 {
159  public:
160  // this needs to be here because unfortunately multiple base classes have this as well (altough it is not needed at all)
161  template <typename T>
163 
165  ~cSampleStreamingSink() override;
166 
168  tResult Init() override;
169 
172 
174  tResult StopStreaming() override;
175 
176  tResult SetName(const char* strName) override;
177  tResult GetName(base::ant::IString&& strName) const override;
178  tResult SetParent(const ucom::ant::IObject* poParentObject) override;
179  tResult GetParent(const ucom::ant::IObject*& poParentObject) const override;
180 
181  tResult GetPins(ucom::ant::iobject_list<streaming::ant::IPin>& oPins) const override;
182  tResult FindPin(const char* strName, ucom::ant::iobject_ptr<ucom::ant::IObject>& pPin) const override;
183 
184  tResult GetBindingObjects(ucom::ant::iobject_list<streaming::ant::IBindingObject>& lstBindingObject) override;
185  tResult GetBindingObjects(ucom::ant::iobject_list<const streaming::ant::IBindingObject>& lstBindingObject) const override;
186  tResult FindBindingObject(const char* strName,
187  ucom::ant::iobject_ptr<const ucom::ant::IObject>& pIBindingObject) const override;
188  tResult FindBindingObject(const char* strName,
189  ucom::ant::iobject_ptr<ucom::ant::IObject>& pIBindingObject) override;
190 
191  tResult GetRunners(ucom::ant::iobject_list<streaming::ant::IRunner>& lstRunners) const override;
192  tResult FindRunner(const char* strName, ucom::ant::iobject_ptr<ucom::ant::IObject>& pRunner) const override;
193  tResult GetInnerPipes(ucom::ant::iobject_list<streaming::ant::ITriggerPipe>& lstInnerTriggerPipes) const override;
194 
195  tResult RequestPin(const char* strName,
198  tResult RequestPin(const char* strName,
201 
202  tResult RequestBindingObject(const char* strName,
205  tResult RequestBindingObject(const char* strName,
208 
209  tResult SetState(tStreamingState eFilterState) override;
210  tStreamingState GetState() override;
211 
212  tResult GetProperties(ucom::ant::iobject_ptr<const base::ant::IProperties>& pProperties) const override;
213  tResult GetProperties(ucom::ant::iobject_ptr<base::ant::IProperties>& pProperties) override;
214  tResult AttachConfiguration(const char* strName, base::ant::IConfiguration& oAttachedConfiguration) override;
215  tResult DetachConfiguration(const char* strName) override;
216 
217  private:
218  class cImplementation;
219  std::unique_ptr<cImplementation> m_pImplementation;
220 };
221 
222 }
223 
225 
226 }
227 }
228 
ucom Interface to a objects configuration.
The IString interface provides methods for getting and setting strings through abstract interfaces.
Definition: string_intf.h:28
Base class for adtf::filter::flash::cFilter, adtf::filter::flash::cSampleStreamingSource and adtf::fi...
Definition: graph_object.h:184
Base class for ADTF sample streaming sinks.
tResult StopStreaming() override
Stop your threads and timers in this method.
tResult StartStreaming() override
Start your threads and timers in this method.
tResult Init() override
Initializes the sink.
Base class for adtf::filter::flash::cFilter, adtf::filter::flash::cSampleStreamingSource and adtf::fi...
Base class for ADTF sample streaming sinks.
tResult StopStreaming() override
Stop your threads and timers in this method.
tResult StartStreaming() override
Start your threads and timers in this method.
tResult Init() override
Initializes the sink.
The Streaming Service Level Machine implementation.
Base class for every interface type within the uCOM.
Definition: object_intf.h:31
Base object pointer to realize binary compatible reference counting in interface methods.
Use this template if you want to implement an ucom::ant::IObject based Interface and/or subclass an e...
Definition: object.h:379
Copyright © Audi Electronics Venture GmbH.
Namespace for entire ADTF SDK.
Copyright © Audi Electronics Venture GmbH.
Copyright © Audi Electronics Venture GmbH.