00001
00002
00003
00004
00005
00006
00007 #ifndef BALL_PYTHON_PYINDEXLIST_H
00008 #define BALL_PYTHON_PYINDEXLIST_H
00009
00010 #ifndef BALL_COMMON_H
00011 # include <BALL/common.h>
00012 #endif
00013
00014 #ifndef BALL_DATAYPE_LIST_H
00015 # include <BALL/DATATYPE/list.h>
00016 #endif
00017
00018 #ifndef BALL_DATAYPE_STRING_H
00019 # include <BALL/DATATYPE/string.h>
00020 #endif
00021
00022 namespace BALL
00023 {
00029 class PyIndexList
00030 : public List<Index>
00031 {
00032 public:
00033
00034 BALL_CREATE(PyIndexList)
00035
00036
00039
00042 typedef Index ValueType;
00043
00046 typedef Index PointerType;
00047
00050 typedef List<Index>::iterator Iterator;
00051
00054 typedef List<Index>::const_iterator ConstIterator;
00055
00057
00060
00064 PyIndexList();
00065
00067 PyIndexList(const PyIndexList& new_list);
00068
00073 PyIndexList(const std::vector<Index>& indices);
00074
00079 PyIndexList(const std::list<Index>& fragment);
00080
00085 PyIndexList(const std::vector<Position>& indices);
00086
00091 PyIndexList(const std::list<Position>& fragment);
00092
00095 virtual ~PyIndexList() throw();
00097
00101
00103 PyIndexList& operator = (const std::list<Index>& idx_list);
00105 PyIndexList& operator = (const std::list<Position>& idx_list);
00107 PyIndexList& operator = (const std::vector<Index>& idx_list);
00109 PyIndexList& operator = (const std::vector<Position>& idx_list);
00111 };
00112
00113 }
00114
00115 #endif // BALL_PYTHON_PYINDEXLIST_H