ADTF  3.18.2
pin.h
Go to the documentation of this file.
1 
7 #pragma once
8 
9 #include "named_graph_object.h"
10 #include "triggerpipe.h"
11 #include "pin_intf.h"
12 #include "inpin_intf.h"
13 #include "outpin_intf.h"
14 
15 #include <adtfucom3/adtf_ucom3.h>
16 #include <adtfbase/runnable_intf.h>
17 
18 #include <memory>
19 
20 namespace adtf
21 {
22 namespace streaming
23 {
24 namespace ant
25 {
26 
32 class cInPin :
33  public ucom::catwo::object<IPin, named_graph_object<trigger_pipe_item<IInPin>>>
34 {
37 
38  public:
40  cInPin();
43  cInPin(const char* strName);
45  virtual ~cInPin();
46 
47  public: //implements IPin
48  tResult GetType(ucom::ant::iobject_ptr<const IStreamType>& pStreamType) const override;
49 
50  bool IsConnected() const override;
51  tResult SetActive() override;
52  tResult SetInactive() override;
53 
54  tResult Disconnect() override;
55  tResult GetSampleStream(ucom::ant::iobject_ptr<ISampleStream>& pSampleStream) const override;
56  public: //implements IInPin
57  tResult Connect(const ucom::ant::iobject_ptr<ISampleStream>& pSampleStream) override;
58 
59  public:
71 
85 
86 
87 
88 };
89 
95 class cOutPin :
96  public ucom::catwo::object<IPin, named_graph_object<trigger_pipe_item<IOutPin>>>
97 {
100 
101  public:
106  cOutPin(const char* strName);
108  virtual ~cOutPin();
109 
110  public: //implements IPin
111  tResult GetType(ucom::ant::iobject_ptr<const IStreamType>& pStreamType) const override;
112 
113  bool IsConnected() const override;
114  tResult SetActive() override;
115  tResult SetInactive() override;
116 
117  tResult Disconnect();
118  tResult GetSampleStream(ucom::ant::iobject_ptr<ISampleStream>& pSampleStream) const override;
119 
120  public: //implements IOutPin
121  tResult Connect(const ucom::ant::iobject_ptr<ISampleStream>& pSampleStream) override;
122 
123  public:
148 
149 };
150 
157  public ucom::catwo::object<cInPin, adtf::base::configuration<>>
158 {
159  public:
161  cConfigurableInPin() = default;
164  cConfigurableInPin(const char* strName);
165 };
166 
173  public ucom::catwo::object<cOutPin, adtf::base::configuration<>>
174 {
175  public:
177  cConfigurableOutPin() = default;
180  cConfigurableOutPin(const char* strName);
181 };
182 
183 
184 
185 } //namespace ant
186 
187 namespace flash
188 {
189 
190 class cInPin: public ucom::catwo::object<base::ant::IRunnable,
191  ant::ITriggerPipeSource,
192  ant::ITriggerPipeItem,
193  ant::INamedGraphObject,
194  ant::IPin,
195  ant::IInPin,
196  base::flash::IRunnable,
197  flash::IStreamerPin>
198 {
199  public:
200  cInPin();
201  cInPin(const char* strName);
202  ~cInPin();
203 
204  ADTF_FLASH_TRIGGER_PIPE_ITEM_METHOD_DECLARATIONS
205 
206  public:
207  tResult GetType(ucom::ant::iobject_ptr<const ant::IStreamType>& pStreamType) const override;
208  bool IsConnected() const override;
209  tResult SetActive() override;
210  tResult SetInactive() override;
211  tResult Connect(const ucom::ant::iobject_ptr<ant::ISampleStream>& pSampleStream) override;
212  tResult Disconnect() override;
213  tResult GetSampleStream(ucom::ant::iobject_ptr<ant::ISampleStream>& pSampleStream) const override;
214 
215  tResult RegisterStreamer(flash::ISampleStreamer& oStreamer) override;
216  tResult UnregisterStreamer(flash::ISampleStreamer& oStreamer) override;
217 
218  protected:
219  class cImplementation;
220  std::unique_ptr<cImplementation> m_pImplementation;
221 };
222 
223 class cOutPin: public ucom::catwo::object<base::ant::IRunnable,
224  ant::ITriggerPipeSource,
225  ant::ITriggerPipeItem,
226  ant::INamedGraphObject,
227  ant::IPin,
228  ant::IOutPin,
229  base::flash::IRunnable,
230  flash::IStreamerPin>
231 {
232  public:
233  cOutPin();
234  cOutPin(const char* strName);
235  ~cOutPin();
236 
237  ADTF_FLASH_TRIGGER_PIPE_ITEM_METHOD_DECLARATIONS
238 
239  public:
240  tResult GetType(ucom::ant::iobject_ptr<const ant::IStreamType>& pStreamType) const override;
241  bool IsConnected() const override;
242  tResult SetActive() override;
243  tResult SetInactive() override;
244  tResult Connect(const ucom::ant::iobject_ptr<ant::ISampleStream>& pSampleStream) override;
245  tResult Disconnect() override;
246  tResult GetSampleStream(ucom::ant::iobject_ptr<ant::ISampleStream>& pSampleStream) const override;
247 
248  tResult RegisterStreamer(flash::ISampleStreamer& oStreamer) override;
249  tResult UnregisterStreamer(flash::ISampleStreamer& oStreamer) override;
250 
251  protected:
252  class cImplementation;
253  std::unique_ptr<cImplementation> m_pImplementation;
254 };
255 
257  public ucom::catwo::object<cInPin, adtf::base::configuration<>>
258 {
259  public:
261  cConfigurableInPin(const char* strName);
262 };
263 
265  public ucom::catwo::object<cOutPin, adtf::base::configuration<>>
266 {
267  public:
269  cConfigurableOutPin(const char* strName);
270 };
271 
272 }
273 
274 namespace quiet
275 {
276 
277 class cInPin: public ucom::catwo::object<flash::cInPin,
278  ITriggerPipeHierachy>
279 {
280  public:
281  cInPin();
282  cInPin(const char* strName);
283  ~cInPin();
284 
285  ADTF_QUIET_TRIGGER_PIPE_ITEM_METHOD_DECLARATIONS
286 };
287 
288 class cOutPin: public ucom::catwo::object<flash::cOutPin,
289  ITriggerPipeHierachy>
290 {
291  public:
292  cOutPin();
293  cOutPin(const char* strName);
294  ~cOutPin();
295  ADTF_QUIET_TRIGGER_PIPE_ITEM_METHOD_DECLARATIONS
296 };
297 
299  public ucom::catwo::object<cInPin, adtf::base::configuration<>>
300 {
301  public:
303  cConfigurableInPin(const char* strName);
304 };
305 
307  public ucom::catwo::object<cOutPin, adtf::base::configuration<>>
308 {
309  public:
311  cConfigurableOutPin(const char* strName);
312 };
313 
314 }
315 
316 using quiet::cInPin;
317 using quiet::cOutPin;
320 
321 } //namespace streaming
322 } //namespace adtf
Copyright © Audi Electronics Venture GmbH.
Sample Reader interface is to opens a Sample Stream for reading.
Local Sample Streamer Interface.
Sample Wiriter interface is to opens a Sample Stream for writing.
The class provides a input Pin implemenation that offers an adtf::base::ant::IConfiguration interface...
Definition: pin.h:158
cConfigurableInPin(const char *strName)
CTOR with name.
The class provides a output Pin implemenation that offers an adtf::base::ant::IConfiguration interfac...
Definition: pin.h:174
cConfigurableOutPin(const char *strName)
CTOR with name.
The cInputPin class implements basic functionality specified by the IInPin interface.
Definition: pin.h:34
cInPin(const char *strName)
CTOR with name.
tResult RegisterStreamer(ISampleReader &pStreamReader)
Registers a Streamer to the Pin.
tResult UnregisterStreamer(ISampleStreamer &pStreamReader)
Unregisters a registered Streamer from the Pin.
cInPin()
private dPointer
The cOutPin class implements basic functionality specified by the IOutPin interface.
Definition: pin.h:97
tResult UnregisterStreamer(ISampleStreamer &pStreamWriter)
Unregisters a registered Streamer from the Pin.
tResult RegisterStreamer(ISampleWriter &pStreamWriter)
Registers a Streamer to the Pin.
cOutPin(const char *strName)
CTOR with name.
Base interface for sample readers and writers.
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
#define A_UTILS_D(__pclassname_)
Helper macro for d-pattern definitions.
Definition: d_ptr.h:270
Copyright © Audi Electronics Venture GmbH.
Copyright © Audi Electronics Venture GmbH.
Namespace for entire ADTF SDK.
Copyright © Audi Electronics Venture GmbH.
Copyright © Audi Electronics Venture GmbH.
Copyright © Audi Electronics Venture GmbH.
Copyright © Audi Electronics Venture GmbH.