ADTF
Loading...
Searching...
No Matches
interface_binding_object.h
Go to the documentation of this file.
1
7#pragma once
13
14namespace adtf
15{
16namespace streaming
17{
18namespace ant
19{
20
26 public ucom::catwo::object<IBindingObject, named_graph_object<IBindingServer>>
27{
29 A_UTILS_D(cBindingServer)
30
31 public:
33 typedef std::pair<adtf::ucom::IObject, IBindingObject> iobject_resolve_type;
35 typedef std::pair<INamedGraphObject, IBindingObject> inamedgraphobject_resolve_type;
38
39
40 template <typename T>
41 using iobject_ptr = adtf::ucom::ant::iobject_ptr < T >;
42
43 protected:
48 cBindingServer(const char* strName);
49
50 public:
51
58 explicit cBindingServer(const char* strName,
59 const iobject_ptr<const IBindingType>& pBindingType,
60 const iobject_ptr<IObject>& pServerObject);
63
64 public: //Implements IBindingObject
65 tResult GetBindingType(iobject_ptr<const IBindingType>& pBindingType) const override;
66 tResult GetServerObject(iobject_ptr<IObject>& ppServerObject) const override;
67 tResult GetBindingProxy(iobject_ptr<IBindingProxy>& pBindingProxy) const override;
68 tResult Unbind() override;
69
70 public: //Implements adtf::IBindingServer
71 tResult Bind(const iobject_ptr<IBindingProxy>& pBindingProxy) override;
72
73 public:
84
85};
86
87
98 public ucom::catwo::object<IBindingObject, named_graph_object<IBindingClient>>
99{
101 A_UTILS_D(cBindingClient)
102
103 public:
105 typedef std::pair<adtf::ucom::IObject, IBindingObject> iobject_resolve_type;
107 typedef std::pair<INamedGraphObject, IBindingObject> inamedgraphobject_resolve_type;
109
110
111 protected:
114
115 public:
116
122 explicit cBindingClient(const char* strName,
123 const ucom::ant::iobject_ptr<const IBindingType>& pInterfaceType);
126
127 public: //Implements adtf::IBindingObject
128 tResult GetBindingType(ucom::ant::iobject_ptr<const IBindingType>& pBindingType) const override;
129 tResult GetServerObject(ucom::ant::iobject_ptr<ucom::ant::IObject>& pServerObject) const override;
130 tResult GetBindingProxy(ucom::ant::iobject_ptr<IBindingProxy>& pBindingProxy) const override;
131 tResult Unbind() override;
132
133 public:
134 tResult Bind(const ucom::ant::iobject_ptr<IBindingProxy>& pBindingProxy) override;
135
136 public:
153};
154
155
156
157} // namespace ant
158
159namespace elasto
160{
161
169 public ucom::catwo::object<ant::IBindingObject, ant::named_graph_object<ant::IBindingServer>>
170{
171 private:
172 A_UTILS_D(cWeakBindingServer)
173
174 public:
181 cWeakBindingServer(const char* strName,
183 const ucom::ant::iobject_ptr<ucom::ant::IObject>& pServerObject);
184
185 tResult GetBindingType(ucom::ant::iobject_ptr<const ant::IBindingType>& pBindingType) const override;
186 tResult GetServerObject(ucom::ant::iobject_ptr<ucom::ant::IObject>& pServerObject) const override;
187 tResult GetBindingProxy(ucom::ant::iobject_ptr<ant::IBindingProxy>& pBindingProxy) const override;
188 tResult Unbind() override;
189 tResult Bind(const ucom::ant::iobject_ptr<ant::IBindingProxy>& pBindingProxy) override;
190
191 private:
192 util::cString GetServerObjectName() const;
193};
194
202template <typename Interface, typename InterfaceBinding>
203tResult create_weak_binding_server(InterfaceBinding& oInterfaceBinding,
204 const char* strName,
206{
211 return oInterfaceBinding.RegisterBindingObject(pServer);
212}
213
214}
215
216using ant::cBindingServer;
217using ant::cBindingClient;
218using elasto::cWeakBindingServer;
220
221} // namespace streaming
222} // namespace adtf
#define UCOM_RESOLVE(...)
Resolve a path to a base class which is inherited multiple times.
Definition adtf_iid.h:46
A_UTILS_NS::cResult tResult
For backwards compatibility and to bring latest version into scope.
Definition result.h:736
Definition interface_binding_type.h:96
std::pair< INamedGraphObject, IBindingObject > inamedgraphobject_resolve_type
object resolver
Definition interface_binding_object.h:107
cBindingClient(const char *strName, const ucom::ant::iobject_ptr< const IBindingType > &pInterfaceType)
tResult SetBindingType(const ucom::ant::iobject_ptr< const IBindingType > &pBindingType)
std::pair< adtf::ucom::IObject, IBindingObject > iobject_resolve_type
private dpointer
Definition interface_binding_object.h:105
virtual tResult SetServerObject(const ucom::ant::iobject_ptr< ucom::ant::IObject > &pServerObject)
cBindingServer(const char *strName)
adtf::ucom::ant::iobject_ptr< T > iobject_ptr
Resolve multiple inheritance from IObject.
Definition interface_binding_object.h:41
tResult SetBindingType(const iobject_ptr< const IBindingType > &pBindingType)
tResult SetServerObject(const iobject_ptr< IObject > &pServerObject)
std::pair< INamedGraphObject, IBindingObject > inamedgraphobject_resolve_type
resolving type
Definition interface_binding_object.h:35
std::pair< adtf::ucom::IObject, IBindingObject > iobject_resolve_type
pricate d-pointer
Definition interface_binding_object.h:33
cBindingServer(const char *strName, const iobject_ptr< const IBindingType > &pBindingType, const iobject_ptr< IObject > &pServerObject)
cWeakBindingServer(const char *strName, const ucom::ant::iobject_ptr< const ant::IBindingType > &pBindingType, const ucom::ant::iobject_ptr< ucom::ant::IObject > &pServerObject)
cWeakBindingServer(const char *strName, const ucom::ant::iobject_ptr< const ant::IBindingType > &pBindingType, const ucom::ant::iobject_ptr< ucom::ant::IObject > &pServerObject)
Base object pointer to realize binary compatible reference counting in interface methods.
Definition object_ptr_intf.h:112
Definition object_ptr.h:384
Definition object.h:397
Namespace for all functionality of the ADTF Streaming SDK provided since v3.0.
Definition bindingproxyoutport.h:16
Namespace for all functionality of the ADTF Streaming SDK provided since v3.4.
Definition interface_binding_object.h:160
tResult create_weak_binding_server(InterfaceBinding &oInterfaceBinding, const char *strName, const ucom::ant::iobject_ptr< Interface > &pObject)
Definition interface_binding_object.h:203
Namespace for the ADTF Streaming SDK.
Definition bindingproxyinport.h:14
object_ptr< T > ucom_object_ptr_cast(object_ptr< T > oCasted)
Alias always bringing the latest version of ant::ucom_object_ptr_cast() into scope.
Definition object_ptr_utilities.h:104
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
Namespace for all functionality provided by ADTF and its SDKs.
Definition adtf_client_connector.h:14