This is the class used to represent variables that are varying over time. More...

#include <model.h>

Inheritance diagram for frepple::Calendar:

List of all members.

Classes

class  Bucket
 This class represents a time bucket as a part of a calendar. More...
class  BucketIterator
 An iterator class to go through all buckets of the calendar. More...
class  EventIterator
 An iterator class to go through all dates where the calendar value changes. More...

Public Member Functions

BucketaddBucket (Date, Date, int=1)
BucketIterator beginBuckets () const
void beginElement (XMLInput &, const Attribute &)
 Calendar (const string &n)
BucketcreateBucket (const AttributeList &)
BucketIterator endBuckets () const
void endElement (XMLInput &pIn, const Attribute &pAttr, const DataElement &pElement)
BucketfindBucket (Date d, bool fwd=true) const
BucketfindBucket (int ident) const
virtual PyObject * getattro (const Attribute &)
virtual bool getBool () const
virtual size_t getSize () const
virtual const MetaClassgetType () const
void removeBucket (Bucket *bkt)
virtual int setattro (const Attribute &, const PythonObject &)
void writeElement (XMLOutput *, const Keyword &, mode=DEFAULT) const
 ~Calendar ()

Static Public Member Functions

static PyObject * addPythonBucket (PyObject *, PyObject *, PyObject *)
static PyObject * getEvents (PyObject *, PyObject *, PyObject *)
static int initialize ()

Static Public Attributes

static const MetaCategorymetadata

Protected Member Functions

int lowestPriority () const

Detailed Description

This is the class used to represent variables that are varying over time.

Some example usages for calendars:

  • A calendar defining the available capacity of a resource week by week.
  • The minimum inventory desired in a buffer week by week.
  • The working hours and holidays at a certain location.

Definition at line 93 of file model.h.


Constructor & Destructor Documentation

frepple::Calendar::Calendar ( const string &  n) [inline]

Default constructor.

Definition at line 302 of file model.h.

frepple::Calendar::~Calendar ( )

Destructor, which cleans up the buckets too and all references to the calendar from the core model.

Definition at line 160 of file calendar.cpp.


Member Function Documentation

Calendar::Bucket * frepple::Calendar::addBucket ( Date  start,
Date  end,
int  id = 1 
)

Adds a new bucket to the list.

Definition at line 195 of file calendar.cpp.

PyObject * frepple::Calendar::addPythonBucket ( PyObject *  self,
PyObject *  args,
PyObject *  kwdict 
) [static]

Find an existing bucket with a given identifier, or create a new one. If no identifier is passed, we always create a new bucket and automatically generate a unique identifier for it.

Definition at line 858 of file calendar.cpp.

BucketIterator frepple::Calendar::beginBuckets ( ) const [inline]

Returns an iterator to go through the list of buckets.

Definition at line 401 of file model.h.

void frepple::Calendar::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 449 of file calendar.cpp.

Calendar::Bucket * frepple::Calendar::createBucket ( const AttributeList atts)

This is a factory method that creates a new bucket using the start date as the key field. The fields are passed as an array of character pointers.
This method is intended to be used to create objects when reading XML input data.

Definition at line 388 of file calendar.cpp.

BucketIterator frepple::Calendar::endBuckets ( ) const [inline]

Returns an iterator to go through the list of buckets.

Definition at line 404 of file model.h.

void frepple::Calendar::endElement ( XMLInput ,
const Attribute ,
const DataElement  
) [inline, 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::utils::HasName< Calendar >.

Reimplemented in frepple::CalendarDouble.

Definition at line 407 of file model.h.

Calendar::Bucket * frepple::Calendar::findBucket ( Date  d,
bool  fwd = true 
) const

Returns the bucket where a certain date belongs to. A NULL pointer is returned when no bucket is effective.

Definition at line 305 of file calendar.cpp.

Calendar::Bucket * frepple::Calendar::findBucket ( int  ident) const

Returns the bucket with a certain identifier. A NULL pointer is returned in case no bucket can be found with the given identifier.

Definition at line 354 of file calendar.cpp.

PyObject * frepple::Calendar::getattro ( const Attribute attr) [virtual]

Default getattro method.
Subclasses are expected to implement an override if the type supports gettattro.

Reimplemented from frepple::utils::PythonExtensionBase.

Reimplemented in frepple::CalendarDouble.

Definition at line 794 of file calendar.cpp.

virtual bool frepple::Calendar::getBool ( ) const [inline, virtual]

Convert the value of the calendar to a boolean value.

Reimplemented in frepple::CalendarDouble.

Definition at line 310 of file model.h.

PyObject * frepple::Calendar::getEvents ( PyObject *  self,
PyObject *  args,
PyObject *  kwdict 
) [static]

Definition at line 969 of file calendar.cpp.

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

Return the memory size of the object in bytes.

Implements frepple::utils::Object.

Definition at line 418 of file model.h.

virtual const MetaClass& frepple::Calendar::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.

Reimplemented in frepple::CalendarDouble.

Definition at line 415 of file model.h.

int frepple::Calendar::initialize ( ) [static]

Reimplemented in frepple::CalendarDouble.

Definition at line 40 of file calendar.cpp.

int frepple::Calendar::lowestPriority ( ) const [inline, protected]

Find the lowest priority of any bucket.

Definition at line 428 of file model.h.

void frepple::Calendar::removeBucket ( Calendar::Bucket bkt)

Removes a bucket from the list.

Definition at line 205 of file calendar.cpp.

int frepple::Calendar::setattro ( const Attribute attr,
const PythonObject field 
) [virtual]

Default setattro method.
Subclasses are expected to implement an override if the type supports settattro.

Reimplemented from frepple::utils::PythonExtensionBase.

Reimplemented in frepple::CalendarDouble.

Definition at line 804 of file calendar.cpp.

void frepple::Calendar::writeElement ( XMLOutput ,
const Keyword ,
mode  = DEFAULT 
) const [virtual]

Called while writing the model into an XML-file. The user class should write itself out, using the IOutStream members for its "simple" members and calling writeElement recursively for any contained objects. Not all classes are expected to implement this method. In instances of such a class can be created but can't be persisted. E.g. Command

Reimplemented from frepple::utils::Object.

Reimplemented in frepple::CalendarDouble.

Definition at line 362 of file calendar.cpp.


Member Data Documentation

Reimplemented in frepple::CalendarDouble.

Definition at line 416 of file model.h.


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

Documentation generated for frePPLe by  doxygen