[#BloombergLP-bdlt-CalendarCache] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bdlt.adoc[bdlt]::CalendarCache :relfileprefix: ../../ :mrdocs: Efficient cache of read‐only `bdlt::Calendar` objects. == Synopsis Declared in `<bdlt_calendarcache.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class CalendarCache; ---- == Description 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. 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 [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bdlt/CalendarCache/2constructor-0f.adoc[`CalendarCache`] [.small]#[constructor]# | Constructors | xref:BloombergLP/bdlt/CalendarCache/2destructor.adoc[`~CalendarCache`] [.small]#[destructor]# | Destroy this object. | xref:BloombergLP/bdlt/CalendarCache/getCalendar.adoc[`getCalendar`] | Return a shared pointer to the named calendar, loading it if needed. | xref:BloombergLP/bdlt/CalendarCache/invalidate.adoc[`invalidate`] | Invalidate and remove the named calendar from this cache. | xref:BloombergLP/bdlt/CalendarCache/invalidateAll.adoc[`invalidateAll`] | Invalidate and remove all calendars from this cache. | xref:BloombergLP/bdlt/CalendarCache/lookupCalendar.adoc[`lookupCalendar`] | Return a shared pointer to the calendar named `calendarName`. | xref:BloombergLP/bdlt/CalendarCache/lookupLoadTime.adoc[`lookupLoadTime`] | Return the UTC datetime when the named calendar was loaded. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#