27 #include "IPMUnknown.h" 31 #include "PersistUtils.h" 32 #include "UIDListInternal.h" 33 #include "index_based_iterator.h" 46 typedef UIDListInternal::value_type value_type;
47 typedef UIDListInternal::size_type size_type;
48 typedef UIDListInternal::const_reference const_reference;
49 typedef UIDListInternal::reference reference;
50 typedef UIDListInternal::difference_type difference_type;
51 typedef UIDListInternal::pointer pointer;
52 typedef UIDListInternal::const_pointer const_pointer;
55 friend class SortedUIDList;
63 typedef std::reverse_iterator<iterator> reverse_iterator;
64 typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
84 fUIDList(other.fUIDList)
123 std::swap(a.fUIDList, b.fUIDList);
152 return fUIDList ?
iterator(*
this, 0) : iterator();
160 return const_reverse_iterator(this->
end());
168 return reverse_iterator(this->
end());
191 const_reverse_iterator
rend()
const 193 return const_reverse_iterator(this->
begin());
201 return reverse_iterator(this->
begin());
211 return (fUIDList && (i > -1)) ? fUIDList->fArray[i] : kInvalidUID;
228 {
return (*
this)[i]; }
288 iterator
erase(iterator i);
297 iterator
erase(iterator first, iterator last);
309 return fUIDList ? fUIDList->fArray.size() : 0;
324 return fUIDList? fUIDList->Location(t) : - 1;
359 return fUIDList? 8 : 0; }
364 return fUIDList? fUIDList->Length() : 0;
370 return fUIDList? fUIDList->IsEmpty(): kTrue;
422 enum EXferType { eXferObject, eXferReference };
425 void ReadWrite(
IPMStream* s,
const EXferType xfer);
428 const_reference get_const_ref(difference_type pos)
const 431 return fUIDList->operator[](pos);
435 reference get_ref(difference_type pos)
441 return fUIDList->operator[](pos);
446 bool IsValidIterator(const_iterator
const& it)
const 449 return ((it.get_container() ==
this) && it.is_valid());
514 #endif // __UIDLIST__