EventAnalysis  1.0.0
DataProvider.h
Go to the documentation of this file.
1 /*
2  * DataProvider.h
3  *
4  * Created on: 08 Feb 2017
5  * Author: Nicola Mori
6  */
7 
10 #ifndef DATAPROVIDER_H_
11 #define DATAPROVIDER_H_
12 
13 #include "core/Configurable.h"
14 #include "core/Info.h"
15 #include "core/ObjectMap.h"
16 #include "data/ObjectCategory.h"
17 #include "data/ObjectProducer.h"
18 
19 #include <string>
20 
21 namespace EA {
22 
29 class DataProvider : public Info, public Configurable, public ObjectProducer {
30 
31 public:
41  DataProvider(const std::string &name, const std::string &dataSource) : Info(name), _dataSource(dataSource) {}
42 
44  virtual ~DataProvider() {}
45 
52  virtual bool Connect() { return true; }
53 
60  virtual bool Disconnect() { return true; }
61 
90  virtual RetrievalResult GetObject(const std::string &name, ObjectCategory category, ObjectWrapper &wrapper,
91  std::string &actualName) {
92  return this->GetObject(name, category, wrapper);
93  }
94 
113  virtual RetrievalResult GetObject(const std::string &name, ObjectCategory category, ObjectWrapper &wrapper) {
115  }
116 
134  virtual bool SetCurrentEvent(unsigned int event, std::vector<std::string> &notValidGlobalObjects) {
135  return SetCurrentEvent(event);
136  }
137 
146  virtual bool SetCurrentEvent(unsigned int event) { return true; }
147 
158  virtual bool SetCurrentPass(unsigned int pass, unsigned int iteration) { return true; }
159 
164  const std::string &GetDataSource() { return _dataSource; }
165 
166 private:
167  std::string _dataSource;
168 };
169 
170 } // namespace EA
171 
172 #include "plugin/FactoryMacros.h"
173 #define RegisterDataProvider(className) \
174  RegisterClass(EA::DataProvider, className, const std::string &, const std::string &)
175 
176 #endif /* DATAPROVIDER_H_ */
std::string _dataSource
Definition: DataProvider.h:167
virtual ~DataProvider()
Destructor.
Definition: DataProvider.h:44
const std::string & GetDataSource()
Getter for data source string.
Definition: DataProvider.h:164
Interface for retrieving informations about an object.
Definition: Info.h:18
RetrievalResult
Definition: RetrievalResult.h:16
IncludeFileExc.h IncludeFileExc class declaration.
Definition: Algorithm.h:21
virtual bool SetCurrentEvent(unsigned int event)
Set the current event.
Definition: DataProvider.h:146
virtual bool SetCurrentPass(unsigned int pass, unsigned int iteration)
Set the current processing pass.
Definition: DataProvider.h:158
DataProvider(const std::string &name, const std::string &dataSource)
Constructor.
Definition: DataProvider.h:41
virtual bool Connect()
Opens the connection to the data source.
Definition: DataProvider.h:52
virtual RetrievalResult GetObject(const std::string &name, ObjectCategory category, ObjectWrapper &wrapper, std::string &actualName)
Retrieve the requested data object for current event.
Definition: DataProvider.h:90
ObjectCategory
Category of objects.
Definition: ObjectCategory.h:17
Generic wrapper class.
Definition: ObjectWrapper.h:28
Interface for a class which produced data objects.
Definition: ObjectProducer.h:28
virtual bool SetCurrentEvent(unsigned int event, std::vector< std::string > &notValidGlobalObjects)
Set the current event.
Definition: DataProvider.h:134
virtual bool Disconnect()
Closes the connection to the data source.
Definition: DataProvider.h:60
Object found but class does not match with requested.
Interface for a configurable class.
Definition: Configurable.h:25
virtual RetrievalResult GetObject(const std::string &name, ObjectCategory category, ObjectWrapper &wrapper)
Retrieve the requested data object for current event.
Definition: DataProvider.h:113
A base class for data providers.
Definition: DataProvider.h:29