This class implements an efficient cache of read‐only bdlt::Calendar objects that are loaded into the cache, using a calendar loader supplied at construction, as a side‐effect of the getCalendar manipulator. Calendars in the cache can be invalidated, and removed from the cache via the invalidate and invalidateAll methods. In addition, calendars in the cache can be made to expire based on a timeout that may be optionally supplied at construction. The bsl::shared_ptr<const bdlt::Calendar> objects returned from the getCalendar and lookupCalendar methods allow for the safe removal of calendars from the cache that may still have outstanding references to them.
Synopsis
Declared in <bdlt_calendarcache.h>
class CalendarCache;
Description
This container is exception neutral with no guarantee of rollback: if an exception is thrown during the invocation of a method on a pre‐existing instance, the container is left in a valid state, but its value is undefined. In no event is memory leaked.
This class is fully thread‐safe (see bsldoc_glossary).
Member Functions
Name |
Description |
|
Constructors |
|
Destroy this object. |
Return a shared pointer providing non‐modifiable access to the calendar having the specified |
|
Invalidate the calendar having the specified |
|
Invalidate all calendars in this calendar cache, and remove them from the cache. Return the number of calendars that were invalidated. Note that a calendar that has been invalidated in the cache remains valid to all outstanding references to it, obtained via earlier calls to the |
|
Return a shared pointer providing non‐modifiable access to the calendar having the specified |
|
Return the datetime, in Coordinated Universal Time (UTC), at which the calendar having the specified |
Created with MrDocs