frepple::Plan Class Reference

This is the (logical) top class of the complete model. More...

#include <model.h>

Inheritance diagram for frepple::Plan:
frepple::Plannable frepple::utils::Object frepple::HasProblems frepple::Solvable

List of all members.

Public Member Functions

void beginElement (XMLInput &, const Attribute &)
void endElement (XMLInput &, const Attribute &, const DataElement &)
const DategetCurrent () const
const string & getDescription () const
const string & getName () const
virtual size_t getSize () const
const MetaClassgetType () const
void setCurrent (Date)
void setDescription (const string &str)
void setName (const string &s)
virtual void solve (Solver &s, void *v=NULL) const
virtual void updateProblems ()
virtual void writeElement (XMLOutput *, const Keyword &, mode=DEFAULT) const
 ~Plan ()

Static Public Member Functions

static Planinstance ()

Static Public Attributes

static const MetaCategorymetadata

Friends

void LibraryModel::initialize ()

Detailed Description

This is the (logical) top class of the complete model.

This is a singleton class: only a single instance can be created. The data model has other limitations that make it not obvious to support building multiple models/plans in memory of the same application: e.g. the operations, resources, problems, operationplans... etc are all implemented in static, global lists. An entity can't be simply linked with a particular plan if multiple ones would exist.

Definition at line 3601 of file model.h.


Constructor & Destructor Documentation

frepple::Plan::~Plan (  ) 

Destructor.

Warning:
In multi threaded applications, the destructor is never called and the plan object leaks when we exit the application. In single-threaded applications this function is called properly, when the static plan variable is deleted.

Definition at line 37 of file plan.cpp.


Member Function Documentation

void frepple::Plan::beginElement ( XMLInput ,
const Attribute  
) [virtual]

Called while restoring the model from an XML-file.
This is called for each element within the "this" element, for which the "this" element is immediate parent.
It is called when the open element tag is encountered.

Reimplemented from frepple::utils::Object.

Definition at line 96 of file plan.cpp.

void frepple::Plan::endElement ( XMLInput ,
const Attribute ,
const DataElement  
) [virtual]

Called while restoring the model from an XML-file.
This is called when the corresponding close element tag is encountered, and the Data() member of pElement is valid.

Reimplemented from frepple::Plannable.

Definition at line 81 of file plan.cpp.

const Date& frepple::Plan::getCurrent (  )  const [inline]

Returns the current Date of the plan.

Definition at line 3644 of file model.h.

const string& frepple::Plan::getDescription (  )  const [inline]

Returns the description of the plan.

Definition at line 3653 of file model.h.

const string& frepple::Plan::getName (  )  const [inline]

Returns the plan name.

Definition at line 3638 of file model.h.

virtual size_t frepple::Plan::getSize (  )  const [inline, virtual]

Return the memory size of the object in bytes.

Implements frepple::utils::Object.

Definition at line 3674 of file model.h.

const MetaClass& frepple::Plan::getType (  )  const [inline, virtual]

This returns the type information on the object, a bit similar to the standard type_info information.

Implements frepple::utils::Object.

Definition at line 3672 of file model.h.

static Plan& frepple::Plan::instance (  )  [inline, static]

Return a pointer to the singleton plan object. The singleton object is created during the initialization of the library.

Definition at line 3627 of file model.h.

void frepple::Plan::setCurrent ( Date  l  ) 

Updates the current date of the plan. This method can be relatively heavy in a plan where operationplans already exist, since the detection for BeforeCurrent problems needs to be rerun.

Definition at line 47 of file plan.cpp.

void frepple::Plan::setDescription ( const string &  str  )  [inline]

Updates the description of the plan.

Definition at line 3656 of file model.h.

void frepple::Plan::setName ( const string &  s  )  [inline]

Updates the plan name.

Definition at line 3641 of file model.h.

virtual void frepple::Plan::solve ( Solver s,
void *  v = NULL 
) const [inline, virtual]

This method basically solves the whole planning problem.

Reimplemented from frepple::Solvable.

Definition at line 3670 of file model.h.

virtual void frepple::Plan::updateProblems (  )  [inline, virtual]

Called to update the list of problems. The function will only be called when:

  • the list of problems is being recomputed
  • AND, problem detection is enabled for this object
  • AND, the object has changed since the last problem computation

Implements frepple::HasProblems.

Definition at line 3667 of file model.h.

void frepple::Plan::writeElement ( XMLOutput o,
const Keyword tag,
mode  m = DEFAULT 
) const [virtual]

This method writes out the model information. Depending on a flag in the XMLOutput object a complete model is written, or only the dynamic plan information.

See also:
CommandSave, CommandSavePlan

Reimplemented from frepple::Plannable.

Definition at line 59 of file plan.cpp.


Friends And Related Function Documentation

void LibraryModel::initialize (  )  [friend]

Member Data Documentation

Definition at line 3673 of file model.h.


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

Generated on 25 Sep 2009 for frePPLe by  doxygen 1.6.1