IIndexMapSet.hpp
1 #ifndef DM_IINDEX_MAP_SET_HPP_INCLUDED
2 #define DM_IINDEX_MAP_SET_HPP_INCLUDED
3 
4 #ifdef _MSC_VER
5  #pragma once
6 #endif
7 
8 
9 #include "DM/config.hpp"
10 #include "DM/IIndexMap.hpp"
11 #include "DM/Iterator.hpp"
12 
13 DM_NAMESPACE_BEGIN
14 
15 /// \brief Interface to a set of index map objects
16 class DM_API IIndexMapSet : public ObjectBase
17 {
18 public:
19  // Iterator typedefs ============================================================================
21 
22  virtual ~IIndexMapSet() {}
23 
24  // General member functions ====================================================================
25  virtual int64_t size() const = 0; ///< size of index map set
26 
27  virtual IIndexMap& operator[](const int id) = 0; ///< access index map
28  virtual const IIndexMap& operator[](const int id) const = 0; ///< const access index map
29 
30  virtual const_iterator beginIndexMap() const = 0;
31  virtual const_iterator endIndexMap() const = 0;
32 };
33 
35 
36 DM_NAMESPACE_END
37 
38 
39 #endif //DM_IINDEX_MAP_SET_HPP_INCLUDED