Public Member Functions

wali::IMarkable Class Reference

List of all members.

Public Member Functions

 IMarkable ()
 IMarkable (const IMarkable &m ATTR_UNUSED)
IMarkableoperator= (const IMarkable &m ATTR_UNUSED)
virtual ~IMarkable ()
virtual void mark () const =0 throw ()
virtual void unmark () const =0 throw ()
virtual bool marked () const =0 throw ()

Detailed Description

IMarkable defines the Markable interface. Markable objects are things that need to be placed in a worklist while possibly being in the worklist, and/or objects in cyclic or DAG-like data structures that are traversed in some fashion.

IMarkable is implemented in the Markable class. The interface has been extracted out for allowing "delegate" objects to delegate the mark() and unmark() calls to the wrapped object. E.g., the Decorator Pattern.

See also:
Worklist

Constructor & Destructor Documentation

wali::IMarkable::IMarkable (  ) 

Creates a new IMarkable in the unmarked state

wali::IMarkable::IMarkable ( const IMarkable &m  ATTR_UNUSED  ) 

This copy constructor actually acts just like the default constructor. This input IMarkable m is ignored. Any time a IMarkable is created it is "born" in the unmarked state.

Parameters:
m is ignored
virtual wali::IMarkable::~IMarkable (  )  [virtual]

Destructor does noting


Member Function Documentation

IMarkable& wali::IMarkable::operator= ( const IMarkable &m  ATTR_UNUSED  ) 

IMarkable::operator= has no effect b/c IMarkable has no fields. In general though, the input should be ignored. This is because IMarkable specifies that state may only be changed via the mark and unmark operations.

virtual void wali::IMarkable::mark (  )  const throw () [pure virtual]
virtual void wali::IMarkable::unmark (  )  const throw () [pure virtual]
virtual bool wali::IMarkable::marked (  )  const throw () [pure virtual]

Check if this is marked.

Returns:
true if this is marked

Implemented in wali::Markable, and wali::wfa::DecoratorTrans.

Referenced by wali::wfa::DecoratorTrans::marked(), wali::RankedWorklist::put(), and wali::PriorityWorklist::put().


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