#include <BALL/CONCEPT/enumerator.h>
Classes | |
class | IteratorTraits_ |
Public Types | |
Type definitions | |
typedef void(* | MutatorFunction )(Variant &, const Variant &) |
typedef std::vector< Variant > | VariantVector |
typedef std::pair < SiteIterator, VariantVector > | Site |
typedef std::list< Site > | SiteList |
typedef ForwardIterator < Enumerator< Container, SiteIterator, Variant > , Container, EnumeratorIndex *, IteratorTraits_ > | Iterator |
typedef ConstForwardIterator < Enumerator< Container, SiteIterator, Variant > , Container, EnumeratorIndex *, IteratorTraits_ > | ConstIterator |
Public Member Functions | |
Constructors and Destructors | |
Enumerator () | |
Enumerator (Container &container) | |
Enumerator (Container &container, MutatorFunction mutator) | |
~Enumerator () | |
Accessors | |
void | addVariants (const SiteIterator &it, const VariantVector &variants) |
void | deleteVariants (const SiteIterator &it, const VariantVector &variants) |
Size | countVariants () |
Container & | getCurrent () |
void | createCombination (const Position index) throw (Exception::IndexOverflow) |
void | createCombination (const EnumeratorIndex &index) throw (EnumeratorIndex::IncompatibleIndex) |
Iterators | |
Iterator | begin () |
Iterator | end () |
ConstIterator | begin () const |
ConstIterator | end () const |
Protected Member Functions | |
void | mutate_ (SiteIterator &it, const Variant &v) |
Static Protected Member Functions | |
static void | defaultAssign_ (Variant &a, const Variant &b) |
Protected Attributes | |
Container & | container_ |
MutatorFunction | mutator_ |
SiteList | variant_sites_ |
EnumeratorIndex | position_ |
bool | is_valid_position_ |
Friends | |
class | IteratorTraits_ |
Enumerator class. The EnumeratorIndex class is designed to enumerate all possible combinations of things. Applications are e.g. the enumeration of all possible sequences defined through a multisequence or enumerating all possible rotamers of a peptide or a bindings site.
Container
it operates on (e.g. the String representing the sequence or the protein containing the amino acids)SiteIterator
(i.e. an iterator pointing to a defined position within the container)Variant
type (i.e. the type of the object to be enumerated). It has to be the same type as the dereferenced SiteIterator
.In the case of a string sequence that has to be mutated, the Container
is of class String , the SiteIterator
is of type String::Iterator
, and Variant
is obviously of type char
.
typedef ConstForwardIterator<Enumerator<Container, SiteIterator, Variant>, Container, EnumeratorIndex*, IteratorTraits_> BALL::Enumerator< Container, SiteIterator, Variant >::ConstIterator |
Constant forward iterator
typedef ForwardIterator<Enumerator<Container, SiteIterator, Variant>, Container, EnumeratorIndex*, IteratorTraits_> BALL::Enumerator< Container, SiteIterator, Variant >::Iterator |
Mutable forward iterator
typedef void(* BALL::Enumerator< Container, SiteIterator, Variant >::MutatorFunction)(Variant &, const Variant &) |
Site mutator function. A function used to assing one variant of a site in the container to another. In the trivial case, this is just the assignment operator (as implemented in the default case), but more involved enumeration problems (e.g. side chain rotamer enumeration) might require additional code for the assignment of the true variant.
typedef std::pair<SiteIterator, VariantVector> BALL::Enumerator< Container, SiteIterator, Variant >::Site |
A combination of a site position and all its possible variants.
typedef std::list<Site> BALL::Enumerator< Container, SiteIterator, Variant >::SiteList |
A list of sites.
typedef std::vector<Variant> BALL::Enumerator< Container, SiteIterator, Variant >::VariantVector |
A vector containing all possible variants for a specific site.
BALL::Enumerator< Container, SiteIterator, Variant >::Enumerator | ( | ) | [inline] |
Default Constructor
BALL::Enumerator< Container, SiteIterator, Variant >::Enumerator | ( | Container & | container | ) | [inline] |
Detailed Constructor. The mutator function is set to a default mutator, using the assignment operator for Variant
.
container | a Container class to be mutated |
BALL::Enumerator< Container, SiteIterator, Variant >::Enumerator | ( | Container & | container, | |
MutatorFunction | mutator | |||
) |
Detailed Constructor
container | a Container class to be mutated | |
mutator | the function defining the mutations to be applied |
BALL::Enumerator< Container, SiteIterator, Variant >::~Enumerator | ( | ) | [inline] |
Default Destructor
void BALL::Enumerator< Container, SiteIterator, Variant >::addVariants | ( | const SiteIterator & | it, | |
const VariantVector & | variants | |||
) | [inline] |
Add variants to the list of variants
BALL_INLINE Enumerator< Container, VariantConstIterator, Variant >::ConstIterator BALL::Enumerator< Container, VariantConstIterator, Variant >::begin | ( | ) | const [inline] |
BALL_INLINE Enumerator< Container, SiteIterator, Variant >::Iterator BALL::Enumerator< Container, SiteIterator, Variant >::begin | ( | ) | [inline] |
Size BALL::Enumerator< Container, SiteIterator, Variant >::countVariants | ( | ) | [inline] |
Count all variants.
void BALL::Enumerator< Container, SiteIterator, Variant >::createCombination | ( | const EnumeratorIndex & | index | ) | throw (EnumeratorIndex::IncompatibleIndex) [inline] |
Create a combination denoted by an instance of EnumeratorIndex.
index | the instance of EnumeratorIndex that describes the combination to be created |
void BALL::Enumerator< Container, SiteIterator, Variant >::createCombination | ( | const Position | index | ) | throw (Exception::IndexOverflow) [inline] |
Create a combination denoted by its number.
index | the number of the combination to be created |
static void BALL::Enumerator< Container, SiteIterator, Variant >::defaultAssign_ | ( | Variant & | a, | |
const Variant & | b | |||
) | [inline, static, protected] |
void BALL::Enumerator< Container, SiteIterator, Variant >::deleteVariants | ( | const SiteIterator & | it, | |
const VariantVector & | variants | |||
) | [inline] |
Delete variants from the list of variants
BALL_INLINE Enumerator< Container, VariantConstIterator, Variant >::ConstIterator BALL::Enumerator< Container, VariantConstIterator, Variant >::end | ( | ) | const [inline] |
BALL_INLINE Enumerator< Container, SiteIterator, Variant >::Iterator BALL::Enumerator< Container, SiteIterator, Variant >::end | ( | ) | [inline] |
BALL_INLINE Container & BALL::Enumerator< Container, SiteIterator, Variant >::getCurrent | ( | ) | [inline] |
Access the current content
References BALL::Enumerator< Container, SiteIterator, Variant >::container_.
void BALL::Enumerator< Container, SiteIterator, Variant >::mutate_ | ( | SiteIterator & | it, | |
const Variant & | v | |||
) | [inline, protected] |
friend class IteratorTraits_ [friend] |
Container& BALL::Enumerator< Container, SiteIterator, Variant >::container_ [protected] |
bool BALL::Enumerator< Container, SiteIterator, Variant >::is_valid_position_ [protected] |
MutatorFunction BALL::Enumerator< Container, SiteIterator, Variant >::mutator_ [protected] |
EnumeratorIndex BALL::Enumerator< Container, SiteIterator, Variant >::position_ [protected] |
SiteList BALL::Enumerator< Container, SiteIterator, Variant >::variant_sites_ [protected] |