00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef _CONSTALIST_H_
00025 #define _CONSTALIST_H_
00026
00027 #include "MdcRecoUtil/AList.h"
00028
00029 #ifdef HEP_NO_INLINE_IN_TEMPLATE_DECLARATION
00030 #define inline
00031 #endif
00032
00033 template <class T>
00034 class HepConstAList : public HepAListBase {
00035
00036 public:
00037
00038 inline HepConstAList();
00039
00040
00041 inline HepConstAList(const HepAList<T> &);
00042
00043
00044 inline HepConstAList(const HepConstAList<T> &);
00045
00046
00047 inline ~HepConstAList();
00048
00049
00050 inline void insert(const T *);
00051 inline void insert(const T &);
00052
00053
00054 inline void insert(const T * e, const T * r);
00055 inline void insert(const T & e, const T & r);
00056
00057
00058
00059 inline void insert(const T * e, unsigned pos);
00060 inline void insert(const T & e, unsigned pos);
00061
00062
00063
00064 inline void append(const T *);
00065 inline void append(const T & e);
00066 inline void operator += (const T *);
00067 inline void operator += (const T &);
00068
00069
00070 inline void append(const T * e, const T * r);
00071 inline void append(const T & e, const T & r);
00072
00073
00074
00075 inline void append(const HepAList<T> & l);
00076 inline void append(const HepConstAList<T> & l);
00077 inline void operator += (const HepAList<T> & l);
00078 inline void operator += (const HepConstAList<T> & l);
00079
00080
00081 inline void remove(const T *);
00082 inline void remove(const T &);
00083
00084
00085 inline void remove(unsigned);
00086
00087
00088 inline void remove(const HepAList<T> &);
00089 inline void remove(const HepConstAList<T> &);
00090
00091
00092 inline HepBoolean member(const T *) const;
00093 inline HepBoolean member(const T &) const;
00094 inline HepBoolean hasMember(const T *) const;
00095 inline HepBoolean hasMember(const T &) const;
00096
00097
00098 inline void replace(const T * eo, const T * en);
00099 inline void replace(const T & eo, const T & en);
00100
00101
00102 inline const T * operator[] (unsigned i) const;
00103
00104
00105
00106 inline int index(const T *) const;
00107 inline int index(const T &) const;
00108
00109
00110
00111 inline int fIndex(const T *) const;
00112 inline int fIndex(const T &) const;
00113
00114
00115
00116 inline const T * first() const;
00117 inline const T * last() const;
00118
00119
00120 inline void operator = (const HepAList<T> &);
00121 inline void operator = (const HepConstAList<T> &);
00122
00123
00124 inline void sort(int (*compfunc)(const T **, const T **) );
00125
00126
00127
00128 };
00129
00130 #ifdef HEP_NO_INLINE_IN_TEMPLATE_DECLARATION
00131 #undef inline
00132 #endif
00133
00134 #ifdef HEP_SHORT_NAMES
00135 #define CAList HepConstAList
00136 #endif
00137
00138 #include "MdcRecoUtil/ConstAList.icc"
00139
00140 #endif