| SyDEVS
    v0.7
    Simulation-based analysis of complex systems involving people, devices, physical elements, and dynamic environments. | 
A data structure which provides durations elapsed since past events. More...
#include <time_cache.h>
| Public Member Functions | |
| time_cache () | |
| Constructs an empty time cache with a current time of zero.  More... | |
| time_cache (duration dt0) | |
| Constructs an empty time cache with a current time of dt0More... | |
| time_cache (const time_point &t0) | |
| Constructs an empty time cache with a current time of t0More... | |
| time_cache (const time_cache &)=default | |
| Copy constructor.  More... | |
| time_cache & | operator= (const time_cache &)=default | 
| Copy assignment.  More... | |
| time_cache (time_cache &&)=default | |
| Move constructor.  More... | |
| time_cache & | operator= (time_cache &&)=default | 
| Move assignment.  More... | |
| ~time_cache ()=default | |
| Destructor.  More... | |
| bool | empty () const | 
| Returns trueif the time cache is empty.  More... | |
| int64 | size () const | 
| Returns the number of events in the time cache.  More... | |
| const time_point & | current_time () const | 
| Returns the current time.  More... | |
| const time_point & | advance_time (duration dt) | 
| Advances the current time by dt.  More... | |
| const time_point & | advance_time (const time_point &t) | 
| Advances the current time to t.  More... | |
| duration | duration_since (int64 event_id) const | 
| Returns the duration since the specified event, or an infinite duration.  More... | |
| void | retain_event (int64 event_id, scale precision) | 
| Retains a record of the event with id event_idat the specifiedprecision.  More... | |
| bool | release_event (int64 event_id) | 
| Erases the record of the event with id event_id, returningtrueif successful.  More... | |
| const time_queue::event_id_set & | event_ids () const | 
| Return the set of ids of all retained events.  More... | |
A data structure which provides durations elapsed since past events.
A time_cache object represents past events in order to obtain elapsed event times as required by DEVS. Like a time queue, the time cache has a current time that can be advanced. Events should be added using the retain_event member function at the time when the event occurs and at the scale at which the event was scheduled. The duration_since member function is used to obtain that elapsed time for the retained event, which increases from zero as time is advanced after the associated retain_event call.
The time_cache data structure, which tracks past events, is implemented using a time queue, which tracks future events. This works by way of a trick where each event time is offset forward in time by 999,999,999,999,999 times the specified precision. Subtracting the planned duration from this number gives the elapsed duration. 
| sydevs::time_cache::time_cache | ( | ) | 
Constructs an empty time cache with a current time of zero.
| 
 | explicit | 
Constructs an empty time cache with a current time of dt0 
| 
 | explicit | 
Constructs an empty time cache with a current time of t0 
| 
 | default | 
Copy constructor.
| 
 | default | 
Move constructor.
| 
 | default | 
Destructor.
| const time_point & sydevs::time_cache::advance_time | ( | const time_point & | t | ) | 
Advances the current time to t. 
| const time_point & sydevs::time_cache::advance_time | ( | duration | dt | ) | 
Advances the current time by dt. 
| 
 | inline | 
Returns the current time.
Returns the duration since the specified event, or an infinite duration.
| 
 | inline | 
Returns true if the time cache is empty. 
| 
 | inline | 
Return the set of ids of all retained events.
| 
 | default | 
Copy assignment.
| 
 | default | 
Move assignment.
| bool sydevs::time_cache::release_event | ( | int64 | event_id | ) | 
Erases the record of the event with id event_id, returning true if successful. 
Retains a record of the event with id event_id at the specified precision. 
| 
 | inline | 
Returns the number of events in the time cache.