coco::delta_base Class Reference
[Deltas]

Base class for the deltas. More...

#include <api_deltabase.h>

Inheritance diagram for coco::delta_base:

Inheritance graph
[legend]

List of all members.

Public Member Functions

 delta_base ()
 delta_base (const std::string &a)
 delta_base (const char *a)
 delta_base (const delta_base &__d)
virtual delta_basenew_copy () const PURE_VIRTUALvirtual void destroy_copy(delta_base *__d) const PURE_VIRTUALvirtual~delta_base()
delta make_delta (const std::string &a)
const std::string & get_action () const
virtual void convert (work_node &_x, delta_base *&_d)
virtual void unkeep ()
virtual bool apply (work_node &_x, undelta_base *&_u, const delta_id &_d) const
virtual bool apply3 (work_node &_x, const work_node &_y, undelta_base *&_u, const delta_id &_d) const

Protected Attributes

std::string _action


Detailed Description

Base class for the deltas, which is wrapped by the delta class since copy constructors cannot directly be overloaded.

Definition at line 150 of file api_deltabase.h.


Constructor & Destructor Documentation

coco::delta_base::delta_base (  )  [inline]

Standard Constructor

Definition at line 158 of file api_deltabase.h.

coco::delta_base::delta_base ( const std::string &  a  )  [inline]

Constructor, explicitly setting the action to a

Definition at line 160 of file api_deltabase.h.

coco::delta_base::delta_base ( const char *  a  )  [inline]

Constructor, explicitly setting the action to a

Definition at line 162 of file api_deltabase.h.

coco::delta_base::delta_base ( const delta_base __d  )  [inline]

Standard Copy Constructor, which is usually not used.

Definition at line 164 of file api_deltabase.h.


Member Function Documentation

virtual bool coco::delta_base::apply ( work_node _x,
undelta_base *&  _u,
const delta_id _d 
) const [inline, virtual]

Apply the delta with delta_id _d to work node _x. In this process the undo information for this delta is stored in _u.

Reimplemented in coco::annotation_delta, coco::bound_delta, coco::boxes_delta, coco::dag_delta, coco::infeasible_delta, coco::point_delta, coco::semantics_delta, coco::split_delta, and coco::table_delta.

Definition at line 198 of file api_deltabase.h.

bool coco::delta_base::apply3 ( work_node _x,
const work_node _y,
undelta_base *&  _u,
const delta_id _d 
) const [inline, virtual]

Apply the delta with delta_id _d to work node _x, constructing in the process work_node _y, without changing _x. In this process the undo information for this delta is stored in _u. This method should be overloaded in the specializations of this class for maximal efficiency, but it need not since a standard procedure is available, which uses the work_node copy constructur and the apply method.

Definition at line 88 of file api_delta.h.

virtual void coco::delta_base::convert ( work_node _x,
delta_base *&  _d 
) [inline, virtual]

Convert this delta to a delta which can be stored in _x, this is e.g. used for all delta version, which are actually stored as annotation changes.

Reimplemented in coco::table_delta.

Definition at line 189 of file api_deltabase.h.

const std::string& coco::delta_base::get_action (  )  const [inline]

Retrieve the action information (the delta type) for this delta.

Definition at line 184 of file api_deltabase.h.

delta coco::delta_base::make_delta ( const std::string &  a  )  [inline]

Construct a delta from this delta_base with the action a.

Definition at line 175 of file api_deltabase.h.

virtual delta_base* coco::delta_base::new_copy (  )  const [inline, virtual]

Clone Operation, which can be overloaded Clone Destructor Standard Destructor

Reimplemented in coco::annotation_delta, coco::bound_delta, coco::boxes_delta, coco::dag_delta, coco::infeasible_delta, coco::point_delta, coco::semantics_delta, coco::split_delta, and coco::table_delta.

Definition at line 167 of file api_deltabase.h.

virtual void coco::delta_base::unkeep (  )  [inline, virtual]

Perform this operation when the delta is released (unkept) from a work_node.

Reimplemented in coco::dag_delta.

Definition at line 194 of file api_deltabase.h.


Member Data Documentation

std::string coco::delta_base::_action [protected]

The action (type) of this delta

Definition at line 154 of file api_deltabase.h.


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

Generated on Tue Feb 9 14:47:46 2010 for COCONUT API by  doxygen 1.5.8