IIndexMap.hpp
1 #ifndef DM_IINDEX_MAP_HPP_INCLUDED
2 #define DM_IINDEX_MAP_HPP_INCLUDED
3 
4 #ifdef _MSC_VER
5  #pragma once
6 #endif
7 
8 #include "DM/config.hpp"
9 #include "DM/ObjectBase.hpp"
10 #include "DM/Handle.hpp"
11 
12 DM_NAMESPACE_BEGIN
13 
14 /// \brief Interface to a set of histograms
15 class DM_API IIndexMap : public ObjectBase
16 {
17 public:
18  virtual ~IIndexMap() {}
19 
20  // General member functions ====================================================================
21  virtual IIndexMap* clone() const = 0;
22 
23  virtual int id() const = 0; ///< returns the id of the index mpa
24 
25  virtual int64_t size() const = 0; ///< size of index map
26  virtual int64_t operator[](const int64_t index) const = 0; ///< access mapped index value
27 };
28 
30 
31 DM_NAMESPACE_END
32 
33 #endif //DM_IINDEX_MAP_HPP_INCLUDED