[#BloombergLP-bdlmt-TimerEventScheduler] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bdlmt.adoc[bdlmt]::TimerEventScheduler :relfileprefix: ../../ :mrdocs: Thread‐safe scheduler that dispatches one‐shot and recurring callbacks. == Synopsis Declared in `<bdlmt_timereventscheduler.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class TimerEventScheduler; ---- == Description This class provides a thread‐safe event scheduler. `scheduleEvent` schedules a non‐recurring event, returning a handle of type `TimerEventScheduler::Handle`, which can be used to cancel the scheduled event by invoking `cancelEvent`. Similarly, `startClock` schedules a recurring event, returning a handle of type `TimerEventScheduler::Handle`, which can be used to cancel the clock by invoking `cancelClock`. `cancelAllEvents` cancels all the registered events and `cancelAllClocks` cancels all the registered clocks. The callbacks are processed by a separate thread (called dispatcher thread). By default the callbacks are executed in the dispatcher thread, but this behavior can be altered by providing a dispatcher functor at the creation time (see the section "The dispatcher thread and the dispatcher functor"). `start` must be invoked to start dispatching the callbacks. `stop` stops the dispatching of the callbacks without removing the pending events. == Type Aliases [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bdlmt/TimerEventScheduler/Dispatcher.adoc[`Dispatcher`] | Defines a type alias for the dispatcher functor type. | xref:BloombergLP/bdlmt/TimerEventScheduler/EventKey.adoc[`EventKey`] | Defines a type alias for a user‐supplied key for identifying events. | xref:BloombergLP/bdlmt/TimerEventScheduler/Handle.adoc[`Handle`] | Defines a type alias for a handle that identifies a scheduled clock or event. |=== == Enums [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bdlmt/TimerEventScheduler/_04enum.adoc[`Unnamed enum`] | Invalid handle constants. |=== == Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bdlmt/TimerEventScheduler/2constructor-0e02.adoc[`TimerEventScheduler`] [.small]#[constructor]# | Constructors | xref:BloombergLP/bdlmt/TimerEventScheduler/2destructor.adoc[`~TimerEventScheduler`] [.small]#[destructor]# | Stop this scheduler, discard all the unprocessed events and destroy this object. | xref:BloombergLP/bdlmt/TimerEventScheduler/cancelAllClocks.adoc[`cancelAllClocks`] | Cancel all recurring clocks registered with this scheduler. | xref:BloombergLP/bdlmt/TimerEventScheduler/cancelAllEvents.adoc[`cancelAllEvents`] | Cancel all one‐shot events registered with this scheduler. | xref:BloombergLP/bdlmt/TimerEventScheduler/cancelClock.adoc[`cancelClock`] | Cancel the recurring clock identified by the specified handle. | xref:BloombergLP/bdlmt/TimerEventScheduler/cancelEvent-0b.adoc[`cancelEvent`] | `cancelEvent` overloads | xref:BloombergLP/bdlmt/TimerEventScheduler/clockType.adoc[`clockType`] | Return the value of the clock type that this object was created with. | xref:BloombergLP/bdlmt/TimerEventScheduler/nextPendingEventTime.adoc[`nextPendingEventTime`] | Return the earliest scheduled time among pending events and clocks. | xref:BloombergLP/bdlmt/TimerEventScheduler/now.adoc[`now`] | Return the current epoch time for this scheduler's clock. | xref:BloombergLP/bdlmt/TimerEventScheduler/numClocks.adoc[`numClocks`] | Return a _snapshot_ of the number of registered clocks with this scheduler. | xref:BloombergLP/bdlmt/TimerEventScheduler/numEvents.adoc[`numEvents`] | Return a _snapshot_ of the number of pending events and events being dispatched in this scheduler. | xref:BloombergLP/bdlmt/TimerEventScheduler/rescheduleEvent-06.adoc[`rescheduleEvent`] | `rescheduleEvent` overloads | xref:BloombergLP/bdlmt/TimerEventScheduler/scheduleEvent.adoc[`scheduleEvent`] | Schedule the specified callback to run at the specified time. | xref:BloombergLP/bdlmt/TimerEventScheduler/start-0d.adoc[`start`] | `start` overloads | xref:BloombergLP/bdlmt/TimerEventScheduler/startClock.adoc[`startClock`] | Schedule a recurring callback at the specified interval. | xref:BloombergLP/bdlmt/TimerEventScheduler/stop.adoc[`stop`] | Stop dispatching events without removing pending work. | xref:BloombergLP/bdlmt/TimerEventScheduler/2conversion.adoc[`operator BloombergLP::bslmf::NestedTraitDeclaration<TimerEventScheduler, UsesBslmaAllocator>`] | Declare that this type uses a `bslma` allocator. |=== == Friends [cols="1,4"] |=== | Name| Description | `xref:BloombergLP/bdlmt/TimerEventSchedulerTestTimeSource.adoc[BloombergLP::bdlmt::TimerEventSchedulerTestTimeSource]` | Test helper that substitutes a controllable clock into a timer scheduler. | `xref:BloombergLP/bdlmt/TimerEventSchedulerDispatcher.adoc[BloombergLP::bdlmt::TimerEventSchedulerDispatcher]` | Dispatcher functor type for `TimerEventScheduler`. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#