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::compress const OpSet< TAG > &  tags  )  const
 

Compress a tagset removing implied tags.

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>
virtual void Tagcoll::Implications< TAG >::consumeItemUntagged const TAG &  item  )  [inline, protected, virtual]
 

Process an untagged item.

Implements Tagcoll::Consumer< TAG, 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> Tagcoll::Implications< TAG >::expand const TAG &  tag  )  const [inline]
 

Expand a single tag.

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

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

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

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

template<class TAG>
void Implications::pack  ) 
 

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

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


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 Fri Mar 24 22:42:25 2006 for libtagcoll by  doxygen 1.4.6