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

#include <model.h>

Inheritance diagram for frepple::Calendar:

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 ()
 
- Public Member Functions inherited from frepple::utils::HasName< Calendar >
int compare (const PyObject *other) const
 
void endElement (XMLInput &pIn, const Attribute &pAttr, const DataElement &pElement)
 
 HasName (const string &n)
 
 HasName (const char *n)
 
void setName (const string &newname)
 
virtual PyObject * str () const
 
 ~HasName ()
 
- Public Member Functions inherited from frepple::utils::Tree::TreeNode
TreeNodedecrement () const
 
const string & getName () const
 
TreeNodeincrement () const
 
bool operator< (const TreeNode &o)
 
 TreeNode (const string &n)
 
virtual ~TreeNode ()
 
- Public Member Functions inherited from frepple::utils::Object
virtual bool getHidden () const
 
 Object ()
 
virtual void setHidden (bool b)
 
virtual ~Object ()
 
- Public Member Functions inherited from frepple::utils::PythonExtensionBase
virtual PyObject * call (const PythonObject &args, const PythonObject &kwds)
 
Py_ssize_t getReferenceCount () const
 
void initType (const MetaClass *t)
 
void initType (PyTypeObject *t)
 
virtual PyObject * iternext ()
 
 PythonExtensionBase ()
 
void resetReferenceCount ()
 
virtual ~PythonExtensionBase ()
 

Static Public Member Functions

static PyObject * addPythonBucket (PyObject *, PyObject *, PyObject *)
 
static PyObject * getEvents (PyObject *, PyObject *)
 
static int initialize ()
 
- Static Public Member Functions inherited from frepple::utils::HasName< Calendar >
static Calendaradd (const string &k, const MetaClass &cls)
 
static Calendaradd (Calendar *t)
 
static Calendaradd (Calendar *t, Calendar *hint)
 
static iterator begin ()
 
static void clear ()
 
static bool empty ()
 
static iterator end ()
 
static Calendarfind (const string &k)
 
static CalendarfindLowerBound (const string &k, bool *f=NULL)
 
static Objectreader (const MetaClass *cat, const AttributeList &in)
 
static size_t size ()
 
static void verify ()
 
static void writer (const MetaCategory *c, XMLOutput *o)
 
- Static Public Member Functions inherited from frepple::utils::Object
template<class T >
static PyObject * create (PyTypeObject *pytype, PyObject *args, PyObject *kwds)
 
template<class T >
static ObjectcreateDefault ()
 
template<class T >
static ObjectcreateString (const string &n)
 
static PyObject * toXML (PyObject *, PyObject *)
 

Static Public Attributes

static const MetaCategorymetadata
 

Protected Member Functions

int lowestPriority () const
 

Additional Inherited Members

- Static Protected Member Functions inherited from frepple::utils::PythonExtensionBase
static PythonTyperegisterPythonType (int, const type_info *)
 
- Static Protected Attributes inherited from frepple::utils::PythonExtensionBase
static vector< PythonType * > table
 

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 89 of file model.h.

Constructor & Destructor Documentation

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

Default constructor.

Definition at line 298 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 163 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 198 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 870 of file calendar.cpp.

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

Returns an iterator to go through the list of buckets.

Definition at line 397 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 453 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 392 of file calendar.cpp.

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

Returns an iterator to go through the list of buckets.

Definition at line 400 of file model.h.

void frepple::Calendar::endElement ( XMLInput ,
const Attribute ,
const DataElement  
)
inlinevirtual

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.

Implements frepple::utils::Object.

Reimplemented in frepple::CalendarDouble.

Definition at line 403 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 308 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 357 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 806 of file calendar.cpp.

virtual bool frepple::Calendar::getBool ( ) const
inlinevirtual

Convert the value of the calendar to a boolean value.

Reimplemented in frepple::CalendarDouble.

Definition at line 306 of file model.h.

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

Definition at line 981 of file calendar.cpp.

virtual size_t frepple::Calendar::getSize ( ) const
inlinevirtual

Return the memory size of the object in bytes.

Implements frepple::utils::Object.

Definition at line 414 of file model.h.

virtual const MetaClass& frepple::Calendar::getType ( ) const
inlinevirtual

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 411 of file model.h.

int frepple::Calendar::initialize ( )
static

Definition at line 34 of file calendar.cpp.

int frepple::Calendar::lowestPriority ( ) const
inlineprotected

Find the lowest priority of any bucket.

Definition at line 424 of file model.h.

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

Removes a bucket from the list.

Definition at line 208 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 816 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 365 of file calendar.cpp.

Member Data Documentation

const MetaCategory * frepple::Calendar::metadata
static

Definition at line 412 of file model.h.


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