Home | History | Annotate | Download | only in utils

Lines Matching refs:KEY

34 template <typename KEY, typename VALUE>
38 typedef KEY key_type;
68 const VALUE& valueFor(const KEY& key) const;
70 const KEY& keyAt(size_t index) const;
71 ssize_t indexOfKey(const KEY& key) const;
78 VALUE& editValueFor(const KEY& key);
85 ssize_t add(const KEY& key, const VALUE& item);
86 ssize_t replaceValueFor(const KEY& key, const VALUE& item);
93 ssize_t removeItem(const KEY& key);
97 SortedVector< key_value_pair_t<KEY, VALUE> > mVector;
100 // KeyedVector<KEY, VALUE> can be trivially moved using memcpy() because its
102 template<typename KEY, typename VALUE> struct trait_trivial_move<KeyedVector<KEY, VALUE> > {
103 enum { value = trait_trivial_move<SortedVector< key_value_pair_t<KEY, VALUE> > >::value };
111 * valueFor() is called with a key that doesn't exist.
113 template <typename KEY, typename VALUE>
114 class DefaultKeyedVector : public KeyedVector<KEY, VALUE>
118 const VALUE& valueFor(const KEY& key) const;
126 template<typename KEY, typename VALUE> inline
127 KeyedVector<KEY,VALUE>::KeyedVector()
131 template<typename KEY, typename VALUE> inline
132 bool KeyedVector<KEY,VALUE>::isIdenticalTo(const KeyedVector<KEY,VALUE>& rhs) const {
136 template<typename KEY, typename VALUE> inline
137 ssize_t KeyedVector<KEY,VALUE>::indexOfKey(const KEY& key) const {
138 return mVector.indexOf( key_value_pair_t<KEY,VALUE>(key) );
141 template<typename KEY, typename VALUE> inline
142 const VALUE& KeyedVector<KEY,VALUE>::valueFor(const KEY& key) const {
143 ssize_t i = this->indexOfKey(key);
144 LOG_ALWAYS_FATAL_IF(i<0, "%s: key not found", __PRETTY_FUNCTION__);
148 template<typename KEY, typename VALUE> inline
149 const VALUE& KeyedVector<KEY,VALUE>::valueAt(size_t index) const {
153 template<typename KEY, typename VALUE> inline
154 const VALUE& KeyedVector<KEY,VALUE>::operator[] (size_t index) const {
158 template<typename KEY, typename VALUE> inline
159 const KEY& KeyedVector<KEY,VALUE>::keyAt(size_t index) const {
160 return mVector.itemAt(index).key;
163 template<typename KEY, typename VALUE> inline
164 VALUE& KeyedVector<KEY,VALUE>::editValueFor(const KEY& key) {
165 ssize_t i = this->indexOfKey(key);
166 LOG_ALWAYS_FATAL_IF(i<0, "%s: key not found", __PRETTY_FUNCTION__);
170 template<typename KEY, typename VALUE> inline
171 VALUE& KeyedVector<KEY,VALUE>::editValueAt(size_t index) {
175 template<typename KEY, typename VALUE> inline
176 ssize_t KeyedVector<KEY,VALUE>::add(const KEY& key, const VALUE& value) {
177 return mVector.add( key_value_pair_t<KEY,VALUE>(key, value) );
180 template<typename KEY, typename VALUE> inline
181 ssize_t KeyedVector<KEY,VALUE>::replaceValueFor(const KEY& key, const VALUE& value) {
182 key_value_pair_t<KEY,VALUE> pair(key, value);
187 template<typename KEY, typename VALUE> inline
188 ssize_t KeyedVector<KEY,VALUE>::replaceValueAt(size_t index, const VALUE& item) {
196 template<typename KEY, typename VALUE> inline
197 ssize_t KeyedVector<KEY,VALUE>::removeItem(const KEY& key) {
198 return mVector.remove(key_value_pair_t<KEY,VALUE>(key));
201 template<typename KEY, typename VALUE> inline
202 ssize_t KeyedVector<KEY, VALUE>::removeItemsAt(size_t index, size_t count) {
208 template<typename KEY, typename VALUE> inline
209 DefaultKeyedVector<KEY,VALUE>::DefaultKeyedVector(const VALUE& defValue)
214 template<typename KEY, typename VALUE> inline
215 const VALUE& DefaultKeyedVector<KEY,VALUE>::valueFor(const KEY& key) const {
216 ssize_t i = this->indexOfKey(key);
217 return i >= 0 ? KeyedVector<KEY,VALUE>::valueAt(i) : mDefault;