IMultiDatamanagerOpener.hpp
1 #ifndef DM_IMULTI_DATAMANAGER_OPENER_HPP_INCLUDED
2 #define DM_IMULTI_DATAMANAGER_OPENER_HPP_INCLUDED
3 
4 
5 #ifdef _MSC_VER
6  #pragma once
7 #endif
8 
9 #include "DM/config.hpp"
10 #include "DM/IDatamanager.hpp"
11 #include "DM/IParameterSet.hpp"
12 
13 
14 #include "DM/AutoLink.hpp" //enable autolink
15 
16 DM_NAMESPACE_BEGIN
17 
18 /// \brief For opening multiple datamanagers as single ODM object
19 /** the current status of implementation is strongly limited. finally, the object should behave as
20  all data have been implemented into a single odm file
21 */
22 class DM_API IMultiDatamanagerOpener : public ObjectBase
23 {
24 public:
25  static IMultiDatamanagerOpener* load(bool readOnly = false, bool threadSafety = true);
26  static IMultiDatamanagerOpener* load(const IParameterSet &params, bool readOnly = false, bool threadSafety = true); // for possible parameters see IDatamanager
27 
28  virtual IMultiDatamanagerOpener& addDatamanager(const char *filename) = 0;
29 
30  virtual IDatamanager* getDatamanager(void *instance = 0) = 0;
31 };
32 
34 
35 DM_NAMESPACE_END
36 
37 #endif //DM_IMULTI_DATAMANAGER_OPENER_HPP_INCLUDED