Tagcoll::Implications< TAG > Class Template Reference

List of explicit implications that can be applied to a tagged collection. More...

#include <Implications.h>

Inheritance diagram for Tagcoll::Implications< TAG >:

Inheritance graph
[legend]
Collaboration diagram for Tagcoll::Implications< TAG >:

Collaboration graph
[legend]
List of all members.

Public Member Functions

virtual ~Implications ()
OpSet< TAG > expand (const TAG &tag) const
 Expand a single tag.
OpSet< TAG > expand (const OpSet< TAG > &tags) const
 Expand a full tagset.
OpSet< TAG > compress (const OpSet< TAG > &tags) const
 Compress a tagset removing implied tags.
void pack ()
void outputFull (Consumer< TAG, TAG > &consumer) const
void output (Consumer< TAG, TAG > &consumer) const

Protected Types

typedef std::map< TAG, OpSet<
TAG > > 
impl_t

Protected Member Functions

OpSet< TAG > getDestinations (const TAG &tag, const OpSet< TAG > &seen=OpSet< TAG >()) const
 Get the set of all tags seen when walking through all parent lists.
bool reaches (const TAG &tag1, const TAG &tag2, const OpSet< TAG > &seen=OpSet< TAG >()) const
 Return true if tag1 can reach tag2 walking through some path in its parent list.
virtual void consumeItemUntagged (const TAG &item)
 Process an untagged item.
virtual void consumeItem (const TAG &item, const OpSet< TAG > &tags)
 Process a tagged item, with its tags.

Protected Attributes

impl_t implications

Detailed Description

template<class TAG>
class Tagcoll::Implications< TAG >

List of explicit implications that can be applied to a tagged collection.


Member Typedef Documentation

template<class TAG>
typedef std::map< TAG, OpSet<TAG> > Tagcoll::Implications< TAG >::impl_t [protected]


Constructor & Destructor Documentation

template<class TAG>
virtual Tagcoll::Implications< TAG >::~Implications (  )  [inline, virtual]


Member Function Documentation

template<class TAG>
OpSet< TAG > Implications::getDestinations ( const TAG &  tag,
const OpSet< TAG > &  seen = OpSet< TAG >() 
) const [inline, protected]

Get the set of all tags seen when walking through all parent lists.

template<class TAG>
bool Implications::reaches ( const TAG &  tag1,
const TAG &  tag2,
const OpSet< TAG > &  seen = OpSet< TAG >() 
) const [inline, protected]

Return true if tag1 can reach tag2 walking through some path in its parent list.

template<class TAG>
virtual void Tagcoll::Implications< TAG >::consumeItemUntagged ( const TAG &  item  )  [inline, protected, virtual]

Process an untagged item.

Implements Tagcoll::Consumer< TAG, TAG >.

template<class TAG>
virtual void Tagcoll::Implications< TAG >::consumeItem ( const TAG &  item,
const OpSet< TAG > &  tags 
) [inline, protected, virtual]

Process a tagged item, with its tags.

Implements Tagcoll::Consumer< TAG, TAG >.

template<class TAG>
OpSet<TAG> Tagcoll::Implications< TAG >::expand ( const TAG &  tag  )  const [inline]

Expand a single tag.

template<class TAG>
OpSet<TAG> Tagcoll::Implications< TAG >::expand ( const OpSet< TAG > &  tags  )  const [inline]

Expand a full tagset.

template<class TAG>
OpSet< TAG > Implications::compress ( const OpSet< TAG > &  tags  )  const [inline]

Compress a tagset removing implied tags.

template<class TAG>
void Implications::pack (  )  [inline]

template<class TAG>
void Tagcoll::Implications< TAG >::outputFull ( Consumer< TAG, TAG > &  consumer  )  const [inline]

template<class TAG>
void Tagcoll::Implications< TAG >::output ( Consumer< TAG, TAG > &  consumer  )  const [inline]


Member Data Documentation

template<class TAG>
impl_t Tagcoll::Implications< TAG >::implications [protected]


The documentation for this class was generated from the following files:
Generated on Wed Jun 20 19:14:27 2007 for libtagcoll by  doxygen 1.5.2