ADTF_DEVICE_TOOLBOX  3.12.1 (ADTF 3.18.3)
bus_database_intf.h
Go to the documentation of this file.
1 
8 #pragma once
9 
10 #include <adtf_base.h>
11 
15 #ifdef WIN32
16 #define DEVTB_BUS_DB_PARSER_FILE_EXT "dll"
17 #else
18 #define DEVTB_BUS_DB_PARSER_FILE_EXT "so"
19 #endif
20 
24 #define CID_DEVTB_MULTIBUSDB_PARSER "multibus_database_parser.service.devicetb.cid"
25 
29 namespace adtf
30 {
31 
35 namespace devicetb
36 {
37 
41 namespace sdk
42 {
43 
47 namespace axle
48 {
59 class IBusDatabaseLoader : public adtf::ucom::ant::IObject
60 {
61  public:
62  ADTF_IID(IBusDatabaseLoader, "bus_database_loader.axle.sdk.devicetb.adtf.iid");
63 
64  public:
65  virtual ~IBusDatabaseLoader() {}
66 
87  virtual bool Accept(const char* strFileNameList, const char* strBusType) const = 0;
88 
112  virtual tResult Load(const char* strFilenameList,
113  const char* strBusType,
114  adtf::ucom::ant::iobject_ptr<adtf::ucom::ant::IObject>& pDatabase) = 0;
115 
125  virtual const char* GetName() const = 0;
126 
127 };
128 
133 class IBusDatabaseRegistry : public adtf::ucom::ant::IObject
134 {
135  public:
136  ADTF_IID(IBusDatabaseRegistry, "bus_database_registry.axle.sdk.devicetb.adtf.iid");
137 
138  public:
139  virtual ~IBusDatabaseRegistry() {}
140 
150  virtual tResult Register(adtf::ucom::ant::iobject_ptr<adtf::devicetb::sdk::axle::IBusDatabaseLoader>& pDBLoader) = 0;
151 
160  virtual tResult Unregister(adtf::ucom::ant::iobject_ptr<adtf::devicetb::sdk::axle::IBusDatabaseLoader>& pDBLoader) = 0;
161 };
162 
163 } // namespace axle
164 
165 
169 namespace cylinder
170 {
174  constexpr const char* const BUSDB_PARSER_DATABASE_PROP = "database";
180  constexpr const char* const BUSDB_PARSER_BUSTYPE_PROP = "bustype";
184  constexpr const char* const BUSDB_PARSER_ADDITIONAL_PARAMETERS_PROP = "additional_parameters";
185 
196  class IBusDatabaseLoader : public adtf::ucom::ant::IObject
197  {
198  public:
199  ADTF_IID(IBusDatabaseLoader, "bus_database_loader.cylinder.sdk.devicetb.adtf.iid");
200 
201  public:
202  virtual ~IBusDatabaseLoader() {}
203 
215  virtual tResult Accept(const adtf::base::ant::IProperties& oProperties) const = 0;
216 
231  virtual tResult Load(const adtf::base::ant::IProperties& oProperties,
232  adtf::ucom::ant::iobject_ptr<adtf::ucom::ant::IObject>& pDatabase) = 0;
233 
243  virtual const char* GetName() const = 0;
244 
245  };
246 
247 } // namespace cylinder
248 
249 namespace hood
250 {
251  constexpr const char* const BUSDB_PARSER_CLUSTER_NAME_PROP = "cluster_name";
252 } // namespace hood
253 
260 
261 } // namespace sdk
262 } // namespace devicetb
263 } // namespace adtf
Interface for implementing bus database readers.
virtual tResult Load(const char *strFilenameList, const char *strBusType, adtf::ucom::ant::iobject_ptr< adtf::ucom::ant::IObject > &pDatabase)=0
Reads bus database files into an instance of a database object.
virtual bool Accept(const char *strFileNameList, const char *strBusType) const =0
Checks if the parser supports the requested bus database file(s).
virtual const char * GetName() const =0
Returns the name of the implementing parser instance.
Bus database registry class for handling different implementations of reading bus database specificat...
virtual tResult Unregister(adtf::ucom::ant::iobject_ptr< adtf::devicetb::sdk::axle::IBusDatabaseLoader > &pDBLoader)=0
Removes a previously registered implementation of a IBusDatabaseLoader from the support service.
virtual tResult Register(adtf::ucom::ant::iobject_ptr< adtf::devicetb::sdk::axle::IBusDatabaseLoader > &pDBLoader)=0
Registers an implementation of a IBusDatabaseLoader to the support service.
Interface for implementing bus database readers.
virtual tResult Load(const adtf::base::ant::IProperties &oProperties, adtf::ucom::ant::iobject_ptr< adtf::ucom::ant::IObject > &pDatabase)=0
Reads bus database files into an instance of a database object.
virtual tResult Accept(const adtf::base::ant::IProperties &oProperties) const =0
Checks if the parser supports the requested bus database.
virtual const char * GetName() const =0
Returns the name of the implementing parser instance.
constexpr const char *const BUSDB_PARSER_ADDITIONAL_PARAMETERS_PROP
Additional parser parameters which will be forwarded into the parser.
constexpr const char *const BUSDB_PARSER_BUSTYPE_PROP
Compulsory property name for the bus type, which is requested by the caller.
constexpr const char *const BUSDB_PARSER_DATABASE_PROP
Compulsory property name for the filepath to the database file.
axle::IBusDatabaseRegistry IBusDatabaseRegistry
Bus database registry class for handling different implementations of reading bus database specificat...
constexpr const char *const BUSDB_PARSER_ADDITIONAL_PARAMETERS_PROP
Additional parser parameters which will be forwarded into the parser.
cylinder::IBusDatabaseLoader IBusDatabaseLoader
Interface for implementing bus database readers.
constexpr const char *const BUSDB_PARSER_CLUSTER_NAME_PROP
constexpr const char *const BUSDB_PARSER_BUSTYPE_PROP
Compulsory property name for the bus type, which is requested by the caller.
constexpr const char *const BUSDB_PARSER_DATABASE_PROP
Compulsory property name for the filepath to the database file.
ADTF - Namespace.