ADTF  3.18.2
samplestreaminport.h
Go to the documentation of this file.
1 
7 #pragma once
8 
9 #include "samplestream.h"
10 #include "streaming_graph_intf.h"
11 #include "samplestreamport_intf.h"
12 
13 #include <memory>
14 
15 namespace adtf
16 {
17 namespace streaming
18 {
19 namespace ant
20 {
28  public ucom::catwo::object<IStreamingPort,
29  IStreamingInPort,
30  sample_stream<ISampleStreamInPort>>
31  {
32  public:
35  "default_sample_stream_in_port.streaming.adtf.cid",
36  "Sample Stream Inport");
37 
38  protected:
47 
49  cSampleStreamInPort() = default;
50 
51  public:
52 
54  cSampleStreamInPort(const char* strName, const char* strPortID)
55  {
56  SetName(strName);
57  m_strPortID = strPortID;
58  }
60  virtual ~cSampleStreamInPort() = default;
61 
62  public:
63  tResult GetPortID(adtf::base::ant::IString&& strID)
64  {
65  return strID.Set(m_strPortID);
66  }
67  private:
68  adtf_util::cString m_strPortID;
69  };
70 
71 
72 } //namespace ant
73 
74 namespace flash
75 {
76 
77 class cSampleStreamInPort: public ucom::catwo::object<base::ant::IRunnable,
78  ant::ITriggerPipeSource,
79  ant::ITriggerPipeItem,
80  ant::INamedGraphObject,
81  ant::ISampleStream,
82  ant::IStreamingPort,
83  ant::IStreamingInPort,
84  ant::ISampleStreamInPort,
85  base::flash::IRunnable>
86 {
87  public:
89  cSampleStreamInPort(const char* strName, const char* strPortId);
90 
91  public:
92  ADTF_FLASH_TRIGGER_PIPE_ITEM_METHOD_DECLARATIONS
93 
94  public:
95  tResult GetStreamError();
96  tResult GetType(ucom::ant::iobject_ptr<const ant::IStreamType>& pStreamType) const override;
97  tTimeStamp GetTime() const override;
98  tResult SetStreamError(const tResult& oError) override;
99  tResult AttachRouting(const ucom::ant::iobject_ptr<ant::ISampleStream>& pSampleStreamTo) override;
100  tResult DetachRouting(const ucom::ant::iobject_ptr<ant::ISampleStream>& pSampleStreamTo) override;
101  tResult Open(const char* strName,
103  const ucom::ant::iobject_ptr<const ant::IStreamType>& pInitialAcceptedStreamType,
106  size_t szQueueSize) override;
107  tResult Open(const char* strName,
110  size_t szQueueSize) override;
111  public:
112  tResult GetPortID(adtf::base::ant::IString&& strID) override;
113 
114  protected:
115  ~cSampleStreamInPort() override;
116 
117  protected:
118  class cImplementation;
119  std::unique_ptr<cImplementation> m_pImplementation;
120 };
121 
122 }
123 
124 namespace quiet
125 {
126 
127 class cSampleStreamInPort: public ucom::catwo::object<flash::cSampleStreamInPort,
128  ITriggerPipeHierachy>
129 {
130  public:
132  cSampleStreamInPort(const char* strName, const char* strPortId);
133  ~cSampleStreamInPort() override;
134 
135  ADTF_QUIET_TRIGGER_PIPE_ITEM_METHOD_DECLARATIONS
136 };
137 
138 }
139 
142 
143 } //namespace streaming
144 } //namespace adtf
The IString interface provides methods for getting and setting strings through abstract interfaces.
Definition: string_intf.h:28
The Default implementation of the ISampleStream interface.
cSampleStreamInPort & operator=(cSampleStreamInPort &&)=delete
deleted move operator
cSampleStreamInPort(cSampleStreamInPort &&)=delete
deleted move CTOR
ADTF_CLASS_ID_NAME(cSampleStreamInPort, "default_sample_stream_in_port.streaming.adtf.cid", "Sample Stream Inport")
Implements adtf::ucom::IClassInfo.
cSampleStreamInPort & operator=(const cSampleStreamInPort &)=delete
deleted copy operator
cSampleStreamInPort(const cSampleStreamInPort &)=delete
deleted copy CTOR
virtual ~cSampleStreamInPort()=default
DTOR.
cSampleStreamInPort(const char *strName, const char *strPortID)
CTOR initializes the name of the stream.
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
string_base< cStackString > cString
cString implementation for a stack string which works on stack if string is lower than A_UTILS_DEFAUL...
Definition: string.h:2778
Namespace for entire ADTF SDK.
Copyright © Audi Electronics Venture GmbH.
Copyright © Audi Electronics Venture GmbH.
Copyright © Audi Electronics Venture GmbH.