This class implements a "sorted list" data structure, sorting "events" based on a date. More...
#include <timeline.h>
Classes | |
class | const_iterator |
This is bi-directional iterator through the timeline. More... | |
class | Event |
Base class for nodes in the timeline. More... | |
class | EventChangeOnhand |
A timeline event representing a change of the current value. More... | |
class | EventMaxQuantity |
A timeline event representing a change of the maximum target. More... | |
class | EventMinQuantity |
A timeline event representing a change of the minimum target. More... | |
class | iterator |
This is bi-directional iterator through the timeline. More... | |
Public Member Functions | |
iterator | begin () |
iterator | begin (Event *e) |
const_iterator | begin () const |
const_iterator | begin (const Event *e) const |
bool | check () const |
bool | empty () const |
iterator | end () |
const_iterator | end () const |
void | erase (Event *) |
virtual double | getMax (Date d, bool inclusive=true) const |
virtual double | getMax (const Event *e, bool inclusive=true) const |
virtual EventMaxQuantity * | getMaxEvent (Date d, bool inclusive=true) const |
virtual double | getMin (Date d, bool inclusive=true) const |
virtual double | getMin (const Event *e, bool inclusive=true) const |
virtual EventMinQuantity * | getMinEvent (Date d, bool inclusive=true) const |
void | insert (Event *) |
void | insert (EventChangeOnhand *e, double qty, const Date &d) |
void | inspect (const string &name) const |
iterator | rbegin () |
const_iterator | rbegin () const |
int | size () const |
TimeLine () | |
void | update (EventChangeOnhand *, double, const Date &) |
Friends | |
class | Event |
Detailed Description
template<class type>
class frepple::utils::TimeLine< type >
This class implements a "sorted list" data structure, sorting "events" based on a date.
The data structure has slow insert scalability: O(n)
Moving data around in the structure is efficient though: O(1)
The class leverages the STL library and also follows its api.
The class used to instantiate a timeline must support the "bool operator < (TYPE)".
Note that the events store the quantity but NOT the date. We pick up the date from the template type. The reasoning for this choice is that the quantity requires more computation than the date and is worthwhile caching. The date field can be read efficiently from the parent type.
Definition at line 53 of file timeline.h.
Constructor & Destructor Documentation
frepple::utils::TimeLine< type >::TimeLine | ( | ) | [inline] |
Definition at line 237 of file timeline.h.
Member Function Documentation
iterator frepple::utils::TimeLine< type >::begin | ( | ) | [inline] |
Definition at line 244 of file timeline.h.
iterator frepple::utils::TimeLine< type >::begin | ( | Event * | e | ) | [inline] |
Definition at line 245 of file timeline.h.
const_iterator frepple::utils::TimeLine< type >::begin | ( | ) | const [inline] |
Definition at line 248 of file timeline.h.
const_iterator frepple::utils::TimeLine< type >::begin | ( | const Event * | e | ) | const [inline] |
Definition at line 249 of file timeline.h.
bool frepple::utils::TimeLine< type >::check | ( | ) | const |
This function is used to trace the consistency of the data structure.
Definition at line 597 of file timeline.h.
bool frepple::utils::TimeLine< type >::empty | ( | ) | const [inline] |
Definition at line 252 of file timeline.h.
iterator frepple::utils::TimeLine< type >::end | ( | ) | [inline] |
Definition at line 247 of file timeline.h.
const_iterator frepple::utils::TimeLine< type >::end | ( | ) | const [inline] |
Definition at line 251 of file timeline.h.
void frepple::utils::TimeLine< type >::erase | ( | Event * | e | ) |
Definition at line 455 of file timeline.h.
virtual double frepple::utils::TimeLine< type >::getMax | ( | Date | d, |
bool | inclusive = true |
||
) | const [inline, virtual] |
This functions returns the maximum valid at a certain date.
Definition at line 300 of file timeline.h.
virtual double frepple::utils::TimeLine< type >::getMax | ( | const Event * | e, |
bool | inclusive = true |
||
) | const [inline, virtual] |
This functions returns the mimimum valid at a certain eveny.
Definition at line 311 of file timeline.h.
virtual EventMaxQuantity* frepple::utils::TimeLine< type >::getMaxEvent | ( | Date | d, |
bool | inclusive = true |
||
) | const [inline, virtual] |
This functions returns the maximum event valid at a certain date.
Definition at line 334 of file timeline.h.
virtual double frepple::utils::TimeLine< type >::getMin | ( | Date | d, |
bool | inclusive = true |
||
) | const [inline, virtual] |
This functions returns the mimimum valid at a certain date.
Definition at line 277 of file timeline.h.
virtual double frepple::utils::TimeLine< type >::getMin | ( | const Event * | e, |
bool | inclusive = true |
||
) | const [inline, virtual] |
This functions returns the mimimum valid at a certain event.
Definition at line 288 of file timeline.h.
virtual EventMinQuantity* frepple::utils::TimeLine< type >::getMinEvent | ( | Date | d, |
bool | inclusive = true |
||
) | const [inline, virtual] |
This functions returns the mimimum event valid at a certain date.
Definition at line 323 of file timeline.h.
void frepple::utils::TimeLine< type >::insert | ( | Event * | e | ) |
Definition at line 362 of file timeline.h.
void frepple::utils::TimeLine< type >::insert | ( | EventChangeOnhand * | e, |
double | qty, | ||
const Date & | d | ||
) | [inline] |
Definition at line 254 of file timeline.h.
void frepple::utils::TimeLine< type >::inspect | ( | const string & | name | ) | const [inline] |
This function is used for debugging purposes.
It prints a header line, followed by the date, quantity and on_hand of all events in the timeline.
Definition at line 267 of file timeline.h.
iterator frepple::utils::TimeLine< type >::rbegin | ( | ) | [inline] |
Definition at line 246 of file timeline.h.
const_iterator frepple::utils::TimeLine< type >::rbegin | ( | ) | const [inline] |
Definition at line 250 of file timeline.h.
int frepple::utils::TimeLine< type >::size | ( | ) | const [inline] |
Definition at line 238 of file timeline.h.
void frepple::utils::TimeLine< type >::update | ( | EventChangeOnhand * | e, |
double | newqty, | ||
const Date & | d | ||
) |
Definition at line 520 of file timeline.h.
Friends And Related Function Documentation
friend class Event [friend] |
Definition at line 55 of file timeline.h.
The documentation for this class was generated from the following file:
Documentation generated for frePPLe by
