00001 // -*- Mode: C++; tab-width: 2; -*- 00002 // vi: set ts=2: 00003 // 00004 // $Id: pyIndexList.h,v 1.2 2005/12/23 17:01:57 amoll Exp $ 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 } // namespace BALL 00114 00115 #endif // BALL_PYTHON_PYINDEXLIST_H