ProteoWizard
Public Types | Public Member Functions | Private Types | Private Attributes
pwiz::util::mru_list< Item, KeyExtractor > Class Template Reference

#include <mru_list.hpp>

List of all members.

Public Types

typedef Item item_type
typedef item_list::iterator iterator
typedef item_list::reverse_iterator reverse_iterator
typedef item_list::const_iterator const_iterator
typedef
item_list::const_reverse_iterator 
const_reverse_iterator
typedef item_list::value_type value_type

Public Member Functions

 mru_list (std::size_t max_num_items_)
bool insert (const item_type &item)
template<typename Modifier >
bool modify (iterator position, Modifier modifier)
bool empty () const
std::size_t size () const
std::size_t max_size () const
void clear ()
const item_typemru () const
const item_typelru () const
iterator begin ()
iterator end ()
reverse_iterator rbegin ()
reverse_iterator rend ()
const_iterator begin () const
const_iterator end () const
const_reverse_iterator rbegin () const
const_reverse_iterator rend () const

Private Types

typedef
boost::multi_index::multi_index_container
< Item,
boost::multi_index::indexed_by
< boost::multi_index::sequenced
<>, boost::multi_index::hashed_unique
< KeyExtractor > > > 
item_list

Private Attributes

item_list il
std::size_t max_num_items

Detailed Description

template<typename Item, typename KeyExtractor = boost::multi_index::identity<Item>>
class pwiz::util::mru_list< Item, KeyExtractor >

Definition at line 49 of file mru_list.hpp.


Member Typedef Documentation

template<typename Item, typename KeyExtractor = boost::multi_index::identity<Item>>
typedef boost::multi_index::multi_index_container< Item, boost::multi_index::indexed_by < boost::multi_index::sequenced<>, boost::multi_index::hashed_unique<KeyExtractor> > > pwiz::util::mru_list< Item, KeyExtractor >::item_list
private

Definition at line 59 of file mru_list.hpp.

template<typename Item, typename KeyExtractor = boost::multi_index::identity<Item>>
typedef Item pwiz::util::mru_list< Item, KeyExtractor >::item_type

Definition at line 62 of file mru_list.hpp.

template<typename Item, typename KeyExtractor = boost::multi_index::identity<Item>>
typedef item_list::iterator pwiz::util::mru_list< Item, KeyExtractor >::iterator

Definition at line 63 of file mru_list.hpp.

template<typename Item, typename KeyExtractor = boost::multi_index::identity<Item>>
typedef item_list::reverse_iterator pwiz::util::mru_list< Item, KeyExtractor >::reverse_iterator

Definition at line 64 of file mru_list.hpp.

template<typename Item, typename KeyExtractor = boost::multi_index::identity<Item>>
typedef item_list::const_iterator pwiz::util::mru_list< Item, KeyExtractor >::const_iterator

Definition at line 65 of file mru_list.hpp.

template<typename Item, typename KeyExtractor = boost::multi_index::identity<Item>>
typedef item_list::const_reverse_iterator pwiz::util::mru_list< Item, KeyExtractor >::const_reverse_iterator

Definition at line 66 of file mru_list.hpp.

template<typename Item, typename KeyExtractor = boost::multi_index::identity<Item>>
typedef item_list::value_type pwiz::util::mru_list< Item, KeyExtractor >::value_type

Definition at line 67 of file mru_list.hpp.


Constructor & Destructor Documentation

template<typename Item, typename KeyExtractor = boost::multi_index::identity<Item>>
pwiz::util::mru_list< Item, KeyExtractor >::mru_list ( std::size_t  max_num_items_)
inline

Definition at line 69 of file mru_list.hpp.

: max_num_items(max_num_items_){}

Member Function Documentation

template<typename Item, typename KeyExtractor = boost::multi_index::identity<Item>>
bool pwiz::util::mru_list< Item, KeyExtractor >::insert ( const item_type item)
inline

Definition at line 71 of file mru_list.hpp.

Referenced by test().

{
std::pair<iterator,bool> p=il.push_front(item);
if(!p.second){ /* duplicate item */
il.relocate(il.begin(),p.first); /* put in front */
return false; /* item not inserted */
}
else if(il.size()>max_num_items){ /* keep the length <= max_num_items */
il.pop_back();
}
return true; /* new item inserted */
}
template<typename Item, typename KeyExtractor = boost::multi_index::identity<Item>>
template<typename Modifier >
bool pwiz::util::mru_list< Item, KeyExtractor >::modify ( iterator  position,
Modifier  modifier 
)
inline

Definition at line 86 of file mru_list.hpp.

{
return il.modify(position, modifier);
}
template<typename Item, typename KeyExtractor = boost::multi_index::identity<Item>>
bool pwiz::util::mru_list< Item, KeyExtractor >::empty ( ) const
inline
template<typename Item, typename KeyExtractor = boost::multi_index::identity<Item>>
std::size_t pwiz::util::mru_list< Item, KeyExtractor >::size ( ) const
inline
template<typename Item, typename KeyExtractor = boost::multi_index::identity<Item>>
std::size_t pwiz::util::mru_list< Item, KeyExtractor >::max_size ( ) const
inline
template<typename Item, typename KeyExtractor = boost::multi_index::identity<Item>>
void pwiz::util::mru_list< Item, KeyExtractor >::clear ( )
inline

Definition at line 94 of file mru_list.hpp.

{il.clear();}
template<typename Item, typename KeyExtractor = boost::multi_index::identity<Item>>
const item_type& pwiz::util::mru_list< Item, KeyExtractor >::mru ( ) const
inline
template<typename Item, typename KeyExtractor = boost::multi_index::identity<Item>>
const item_type& pwiz::util::mru_list< Item, KeyExtractor >::lru ( ) const
inline
template<typename Item, typename KeyExtractor = boost::multi_index::identity<Item>>
iterator pwiz::util::mru_list< Item, KeyExtractor >::begin ( )
inline

Definition at line 99 of file mru_list.hpp.

Referenced by test().

{return il.begin();}
template<typename Item, typename KeyExtractor = boost::multi_index::identity<Item>>
iterator pwiz::util::mru_list< Item, KeyExtractor >::end ( )
inline

Definition at line 100 of file mru_list.hpp.

{return il.end();}
template<typename Item, typename KeyExtractor = boost::multi_index::identity<Item>>
reverse_iterator pwiz::util::mru_list< Item, KeyExtractor >::rbegin ( )
inline

Definition at line 102 of file mru_list.hpp.

Referenced by test().

{return il.rbegin();}
template<typename Item, typename KeyExtractor = boost::multi_index::identity<Item>>
reverse_iterator pwiz::util::mru_list< Item, KeyExtractor >::rend ( )
inline

Definition at line 103 of file mru_list.hpp.

{return il.rend();}
template<typename Item, typename KeyExtractor = boost::multi_index::identity<Item>>
const_iterator pwiz::util::mru_list< Item, KeyExtractor >::begin ( ) const
inline

Definition at line 105 of file mru_list.hpp.

{return il.begin();}
template<typename Item, typename KeyExtractor = boost::multi_index::identity<Item>>
const_iterator pwiz::util::mru_list< Item, KeyExtractor >::end ( ) const
inline

Definition at line 106 of file mru_list.hpp.

{return il.end();}
template<typename Item, typename KeyExtractor = boost::multi_index::identity<Item>>
const_reverse_iterator pwiz::util::mru_list< Item, KeyExtractor >::rbegin ( ) const
inline

Definition at line 108 of file mru_list.hpp.

{return il.rbegin();}
template<typename Item, typename KeyExtractor = boost::multi_index::identity<Item>>
const_reverse_iterator pwiz::util::mru_list< Item, KeyExtractor >::rend ( ) const
inline

Definition at line 109 of file mru_list.hpp.

{return il.rend();}

Member Data Documentation

template<typename Item, typename KeyExtractor = boost::multi_index::identity<Item>>
item_list pwiz::util::mru_list< Item, KeyExtractor >::il
private

Definition at line 112 of file mru_list.hpp.

Referenced by pwiz::util::mru_list< KeyValuePair, boost::multi_index::member_offset< KeyValuePair, size_t, first_offset > >::begin(), pwiz::util::mru_list< KeyValuePair, boost::multi_index::member_offset< KeyValuePair, size_t, first_offset > >::clear(), pwiz::util::mru_list< KeyValuePair, boost::multi_index::member_offset< KeyValuePair, size_t, first_offset > >::empty(), pwiz::util::mru_list< KeyValuePair, boost::multi_index::member_offset< KeyValuePair, size_t, first_offset > >::end(), pwiz::util::mru_list< KeyValuePair, boost::multi_index::member_offset< KeyValuePair, size_t, first_offset > >::insert(), pwiz::util::mru_list< KeyValuePair, boost::multi_index::member_offset< KeyValuePair, size_t, first_offset > >::lru(), pwiz::util::mru_list< KeyValuePair, boost::multi_index::member_offset< KeyValuePair, size_t, first_offset > >::max_size(), pwiz::util::mru_list< KeyValuePair, boost::multi_index::member_offset< KeyValuePair, size_t, first_offset > >::modify(), pwiz::util::mru_list< KeyValuePair, boost::multi_index::member_offset< KeyValuePair, size_t, first_offset > >::mru(), pwiz::util::mru_list< KeyValuePair, boost::multi_index::member_offset< KeyValuePair, size_t, first_offset > >::rbegin(), pwiz::util::mru_list< KeyValuePair, boost::multi_index::member_offset< KeyValuePair, size_t, first_offset > >::rend(), and pwiz::util::mru_list< KeyValuePair, boost::multi_index::member_offset< KeyValuePair, size_t, first_offset > >::size().

template<typename Item, typename KeyExtractor = boost::multi_index::identity<Item>>
std::size_t pwiz::util::mru_list< Item, KeyExtractor >::max_num_items
private

The documentation for this class was generated from the following file: