[#BloombergLP-bdlmt-TimerEventScheduler-2constructor-0e02]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bdlmt.adoc[bdlmt]::xref:BloombergLP/bdlmt/TimerEventScheduler.adoc[TimerEventScheduler]::TimerEventScheduler
:relfileprefix: ../../../
:mrdocs:

Constructors

== Synopses

Declared in `&lt;bdlmt&lowbar;timereventscheduler&period;h&gt;`

Construct an event scheduler using the default dispatcher functor (see the &quot;The dispatcher thread and the dispatcher functor&quot; section in component&hyphen;level doc) and use the realtime clock epoch for all time intervals (see &lsqb;&rsqb;Clock&hyphen;Types) )&period; Optionally specify a `basicAllocator` used to supply memory&period; If `basicAllocator` is 0, the currently installed default allocator is used&period; Note that the maximal number of scheduled non&hyphen;recurring events and recurring events defaults to an implementation defined constant&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
explicit
xref:BloombergLP/bdlmt/TimerEventScheduler/2constructor-01.adoc[TimerEventScheduler](xref:BloombergLP/bslma/Allocator.adoc[bslma::Allocator]* basicAllocator = 0);
----

[.small]#xref:BloombergLP/bdlmt/TimerEventScheduler/2constructor-01.adoc[_» more&period;&period;&period;_]#

Construct an event scheduler using the default dispatcher functor (see the &quot;The dispatcher thread and the dispatcher functor&quot; section in component&hyphen;level doc) and use the specified `clockType` to indicate the epoch used for all time intervals (see &lsqb;&rsqb;Clock&hyphen;Types))&period; Optionally specify a `basicAllocator` used to supply memory&period; If `basicAllocator` is 0, the currently installed default allocator is used&period; Note that the maximal number of scheduled non&hyphen;recurring events and recurring events defaults to an implementation defined constant&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
explicit
xref:BloombergLP/bdlmt/TimerEventScheduler/2constructor-0e0c.adoc[TimerEventScheduler](
    xref:BloombergLP/bsls/SystemClockType/Enum.adoc[bsls::SystemClockType::Enum] clockType,
    xref:BloombergLP/bslma/Allocator.adoc[bslma::Allocator]* basicAllocator = 0);
----

[.small]#xref:BloombergLP/bdlmt/TimerEventScheduler/2constructor-0e0c.adoc[_» more&period;&period;&period;_]#

Construct an event scheduler using the specified `dispatcherFunctor` (see &quot;The dispatcher thread and the dispatcher functor&quot; section in component&hyphen;level doc) and use the realtime clock epoch for all time intervals (see &lsqb;&rsqb;Clock&hyphen;Types))&period; Optionally specify a `basicAllocator` used to supply memory&period; If `basicAllocator` is 0, the currently installed default allocator is used&period; Note that the maximal number of scheduled non&hyphen;recurring events and recurring events defaults to an implementation defined constant&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
explicit
xref:BloombergLP/bdlmt/TimerEventScheduler/2constructor-0e2.adoc[TimerEventScheduler](
    xref:BloombergLP/bdlmt/TimerEventScheduler/Dispatcher.adoc[Dispatcher] const& dispatcherFunctor,
    xref:BloombergLP/bslma/Allocator.adoc[bslma::Allocator]* basicAllocator = 0);
----

[.small]#xref:BloombergLP/bdlmt/TimerEventScheduler/2constructor-0e2.adoc[_» more&period;&period;&period;_]#

Construct a timer event scheduler using the default dispatcher functor (see the &quot;The dispatcher thread and the dispatcher functor&quot; section in component level doc) that has the capability to concurrently schedule _at_ _least_ the specified `numEvents` and `numClocks` and use the realtime clock epoch for all time intervals (see &lsqb;&rsqb;Clock&hyphen;Types))&period; Optionally specify a `basicAllocator` used to supply memory&period; If `basicAllocator` is 0, the currently installed default allocator is used&period; The behavior is undefined unless `0 &lt;&equals; numEvents &lt; 2&ast;&ast;24` and `0 &lt;&equals; numClocks &lt; 2&ast;&ast;24`&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
xref:BloombergLP/bdlmt/TimerEventScheduler/2constructor-04.adoc[TimerEventScheduler](
    int numEvents,
    int numClocks,
    xref:BloombergLP/bslma/Allocator.adoc[bslma::Allocator]* basicAllocator = 0);
----

[.small]#xref:BloombergLP/bdlmt/TimerEventScheduler/2constructor-04.adoc[_» more&period;&period;&period;_]#

Construct an event scheduler using the specified `dispatcherFunctor` (see &quot;The dispatcher thread and the dispatcher functor&quot; section in component&hyphen;level doc) and use the specified `clockType` to indicate the epoch used for all time intervals (see &lsqb;&rsqb;Clock&hyphen;Types))&period; Optionally specify a `basicAllocator` used to supply memory&period; If `basicAllocator` is 0, the currently installed default allocator is used&period; Note that the maximal number of scheduled non&hyphen;recurring events and recurring events defaults to an implementation defined constant&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
explicit
xref:BloombergLP/bdlmt/TimerEventScheduler/2constructor-0ee.adoc[TimerEventScheduler](
    xref:BloombergLP/bdlmt/TimerEventScheduler/Dispatcher.adoc[Dispatcher] const& dispatcherFunctor,
    xref:BloombergLP/bsls/SystemClockType/Enum.adoc[bsls::SystemClockType::Enum] clockType,
    xref:BloombergLP/bslma/Allocator.adoc[bslma::Allocator]* basicAllocator = 0);
----

[.small]#xref:BloombergLP/bdlmt/TimerEventScheduler/2constructor-0ee.adoc[_» more&period;&period;&period;_]#

Construct an event scheduler using the default dispatcher functor (see the &quot;The dispatcher thread and the dispatcher functor&quot; section in component&hyphen;level doc), use the realtime clock epoch for all time intervals (see &lsqb;&rsqb;Clock&hyphen;Types)), the specified `eventSchedulerName` to be used to identify this event scheduler, and the specified `metricsRegistry` to be used for reporting metrics&period; If `metricsRegistry` is 0, `bdlm&colon;&colon;MetricsRegistry&colon;&colon;singleton()` is used&period; Optionally specify a `basicAllocator` used to supply memory&period; If `basicAllocator` is 0, the currently installed default allocator is used&period; Note that the maximal number of scheduled non&hyphen;recurring events and recurring events defaults to an implementation defined constant&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
explicit
xref:BloombergLP/bdlmt/TimerEventScheduler/2constructor-009.adoc[TimerEventScheduler](
    std::string&lowbar;view const& eventSchedulerName,
    xref:BloombergLP/bdlm/MetricsRegistry.adoc[bdlm::MetricsRegistry]* metricsRegistry,
    xref:BloombergLP/bslma/Allocator.adoc[bslma::Allocator]* basicAllocator = 0);
----

[.small]#xref:BloombergLP/bdlmt/TimerEventScheduler/2constructor-009.adoc[_» more&period;&period;&period;_]#

Construct an event scheduler using the default dispatcher functor (see the &quot;The dispatcher thread and the dispatcher functor&quot; section in component&hyphen;level doc), use the specified `clockType` to indicate the epoch used for all time intervals (see &lsqb;&rsqb;&num;(Supported Clock&hyphen;Types)), the specified `eventSchedulerName` to be used to identify this event scheduler, and the specified `metricsRegistry` to be used for reporting metrics&period; If `metricsRegistry` is 0, `bdlm&colon;&colon;MetricsRegistry&colon;&colon;singleton()` is used&period; Optionally specify a `basicAllocator` used to supply memory&period; If `basicAllocator` is 0, the currently installed default allocator is used&period; Note that the maximal number of scheduled non&hyphen;recurring events and recurring events defaults to an implementation defined constant&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
explicit
xref:BloombergLP/bdlmt/TimerEventScheduler/2constructor-0b4.adoc[TimerEventScheduler](
    xref:BloombergLP/bsls/SystemClockType/Enum.adoc[bsls::SystemClockType::Enum] clockType,
    std::string&lowbar;view const& eventSchedulerName,
    xref:BloombergLP/bdlm/MetricsRegistry.adoc[bdlm::MetricsRegistry]* metricsRegistry,
    xref:BloombergLP/bslma/Allocator.adoc[bslma::Allocator]* basicAllocator = 0);
----

[.small]#xref:BloombergLP/bdlmt/TimerEventScheduler/2constructor-0b4.adoc[_» more&period;&period;&period;_]#

Construct a timer event scheduler using the default dispatcher functor (see the &quot;The dispatcher thread and the dispatcher functor&quot; section in component level doc) that has the capability to concurrently schedule _at_ _least_ the specified `numEvents` and `numClocks` and use the specified `clockType` to indicate the epoch used for all time intervals (see &lsqb;&rsqb;Clock&hyphen;Types))&period; Optionally specify a `basicAllocator` used to supply memory&period; If `basicAllocator` is 0, the currently installed default allocator is used&period; The behavior is undefined unless `0 &lt;&equals; numEvents &lt; 2&ast;&ast;24` and `0 &lt;&equals; numClocks &lt; 2&ast;&ast;24`&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
xref:BloombergLP/bdlmt/TimerEventScheduler/2constructor-0c.adoc[TimerEventScheduler](
    int numEvents,
    int numClocks,
    xref:BloombergLP/bsls/SystemClockType/Enum.adoc[bsls::SystemClockType::Enum] clockType,
    xref:BloombergLP/bslma/Allocator.adoc[bslma::Allocator]* basicAllocator = 0);
----

[.small]#xref:BloombergLP/bdlmt/TimerEventScheduler/2constructor-0c.adoc[_» more&period;&period;&period;_]#

Construct a timer event scheduler using the specified `dispatcherFunctor` (see &quot;The dispatcher thread and the dispatcher functor&quot; section in component level doc) that has the capability to concurrently schedule _at_ _least_ the specified `numEvents` and `numClocks` and use the realtime clock epoch for all time intervals (see &lsqb;&rsqb;Clock&hyphen;Types))&period; Optionally specify a `basicAllocator` used to supply memory&period; If `basicAllocator` is 0, the currently installed default allocator is used&period; The behavior is undefined unless `0 &lt;&equals; numEvents &lt; 2&ast;&ast;24` and `0 &lt;&equals; numClocks &lt; 2&ast;&ast;24`&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
xref:BloombergLP/bdlmt/TimerEventScheduler/2constructor-0bd.adoc[TimerEventScheduler](
    int numEvents,
    int numClocks,
    xref:BloombergLP/bdlmt/TimerEventScheduler/Dispatcher.adoc[Dispatcher] const& dispatcherFunctor,
    xref:BloombergLP/bslma/Allocator.adoc[bslma::Allocator]* basicAllocator = 0);
----

[.small]#xref:BloombergLP/bdlmt/TimerEventScheduler/2constructor-0bd.adoc[_» more&period;&period;&period;_]#

Construct an event scheduler using the specified `dispatcherFunctor` (see &quot;The dispatcher thread and the dispatcher functor&quot; section in component&hyphen;level doc), use the realtime clock epoch for all time intervals (see &lsqb;&rsqb;Clock&hyphen;Types)), the specified `eventSchedulerName` to be used to identify this event scheduler, and the specified `metricsRegistry` to be used for reporting metrics&period; If `metricsRegistry` is 0, `bdlm&colon;&colon;MetricsRegistry&colon;&colon;singleton()` is used&period; Optionally specify a `basicAllocator` used to supply memory&period; If `basicAllocator` is 0, the currently installed default allocator is used&period; Note that the maximal number of scheduled non&hyphen;recurring events and recurring events defaults to an implementation defined constant&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
explicit
xref:BloombergLP/bdlmt/TimerEventScheduler/2constructor-0a5.adoc[TimerEventScheduler](
    xref:BloombergLP/bdlmt/TimerEventScheduler/Dispatcher.adoc[Dispatcher] const& dispatcherFunctor,
    std::string&lowbar;view const& eventSchedulerName,
    xref:BloombergLP/bdlm/MetricsRegistry.adoc[bdlm::MetricsRegistry]* metricsRegistry,
    xref:BloombergLP/bslma/Allocator.adoc[bslma::Allocator]* basicAllocator = 0);
----

[.small]#xref:BloombergLP/bdlmt/TimerEventScheduler/2constructor-0a5.adoc[_» more&period;&period;&period;_]#

Construct a timer event scheduler using the specified `dispatcherFunctor` (see &quot;The dispatcher thread and the dispatcher functor&quot; section in component level doc) that has the capability to concurrently schedule *at least* the specified `numEvents` and `numClocks` and use the specified `clockType` to indicate the epoch used for all time intervals (see &lsqb;&rsqb;Clock&hyphen;Types))&period; Optionally specify a `basicAllocator` used to supply memory&period; If `basicAllocator` is 0, the currently installed default allocator is used&period; The behavior is undefined unless `0 &lt;&equals; numEvents &lt; 2&ast;&ast;24` and `0 &lt;&equals; numClocks &lt; 2&ast;&ast;24`&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
xref:BloombergLP/bdlmt/TimerEventScheduler/2constructor-0d.adoc[TimerEventScheduler](
    int numEvents,
    int numClocks,
    xref:BloombergLP/bdlmt/TimerEventScheduler/Dispatcher.adoc[Dispatcher] const& dispatcherFunctor,
    xref:BloombergLP/bsls/SystemClockType/Enum.adoc[bsls::SystemClockType::Enum] clockType,
    xref:BloombergLP/bslma/Allocator.adoc[bslma::Allocator]* basicAllocator = 0);
----

[.small]#xref:BloombergLP/bdlmt/TimerEventScheduler/2constructor-0d.adoc[_» more&period;&period;&period;_]#

Construct a timer event scheduler using the default dispatcher functor (see the &quot;The dispatcher thread and the dispatcher functor&quot; section in component level doc) that has the capability to concurrently schedule _at_ _least_ the specified `numEvents` and `numClocks`, use the realtime clock epoch for all time intervals (see &lsqb;&rsqb;Clock&hyphen;Types)), the specified `eventSchedulerName` to be used to identify this event scheduler, and the specified `metricsRegistry` to be used for reporting metrics&period; If `metricsRegistry` is 0, `bdlm&colon;&colon;MetricsRegistry&colon;&colon;singleton()` is used&period; Optionally specify a `basicAllocator` used to supply memory&period; If `basicAllocator` is 0, the currently installed default allocator is used&period; The behavior is undefined unless `0 &lt;&equals; numEvents &lt; 2&ast;&ast;24` and `0 &lt;&equals; numClocks &lt; 2&ast;&ast;24`&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
xref:BloombergLP/bdlmt/TimerEventScheduler/2constructor-0f.adoc[TimerEventScheduler](
    int numEvents,
    int numClocks,
    std::string&lowbar;view const& eventSchedulerName,
    xref:BloombergLP/bdlm/MetricsRegistry.adoc[bdlm::MetricsRegistry]* metricsRegistry,
    xref:BloombergLP/bslma/Allocator.adoc[bslma::Allocator]* basicAllocator = 0);
----

[.small]#xref:BloombergLP/bdlmt/TimerEventScheduler/2constructor-0f.adoc[_» more&period;&period;&period;_]#

Construct an event scheduler using the specified `dispatcherFunctor` (see &quot;The dispatcher thread and the dispatcher functor&quot; section in component&hyphen;level doc), use the specified `clockType` to indicate the epoch used for all time intervals (see &lsqb;&rsqb;Clock&hyphen;Types)), the specified `eventSchedulerName` to be used to identify this event scheduler, and the specified `metricsRegistry` to be used for reporting metrics&period; If `metricsRegistry` is 0, `bdlm&colon;&colon;MetricsRegistry&colon;&colon;singleton()` is used&period; Optionally specify a `basicAllocator` used to supply memory&period; If `basicAllocator` is 0, the currently installed default allocator is used&period; Note that the maximal number of scheduled non&hyphen;recurring events and recurring events defaults to an implementation defined constant&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
explicit
xref:BloombergLP/bdlmt/TimerEventScheduler/2constructor-03.adoc[TimerEventScheduler](
    xref:BloombergLP/bdlmt/TimerEventScheduler/Dispatcher.adoc[Dispatcher] const& dispatcherFunctor,
    xref:BloombergLP/bsls/SystemClockType/Enum.adoc[bsls::SystemClockType::Enum] clockType,
    std::string&lowbar;view const& eventSchedulerName,
    xref:BloombergLP/bdlm/MetricsRegistry.adoc[bdlm::MetricsRegistry]* metricsRegistry,
    xref:BloombergLP/bslma/Allocator.adoc[bslma::Allocator]* basicAllocator = 0);
----

[.small]#xref:BloombergLP/bdlmt/TimerEventScheduler/2constructor-03.adoc[_» more&period;&period;&period;_]#

Construct a timer event scheduler using the default dispatcher functor (see the &quot;The dispatcher thread and the dispatcher functor&quot; section in component level doc) that has the capability to concurrently schedule _at_ _least_ the specified `numEvents` and `numClocks`, use the specified `clockType` to indicate the epoch used for all time intervals (see &lsqb;&rsqb;Clock&hyphen;Types) in the component documentation), the specified `eventSchedulerName` to be used to identify this event scheduler, and the specified `metricsRegistry` to be used for reporting metrics&period; If `metricsRegistry` is 0, `bdlm&colon;&colon;MetricsRegistry&colon;&colon;singleton()` is used&period; Optionally specify a `basicAllocator` used to supply memory&period; If `basicAllocator` is 0, the currently installed default allocator is used&period; The behavior is undefined unless `0 &lt;&equals; numEvents &lt; 2&ast;&ast;24` and `0 &lt;&equals; numClocks &lt; 2&ast;&ast;24`&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
xref:BloombergLP/bdlmt/TimerEventScheduler/2constructor-006.adoc[TimerEventScheduler](
    int numEvents,
    int numClocks,
    xref:BloombergLP/bsls/SystemClockType/Enum.adoc[bsls::SystemClockType::Enum] clockType,
    std::string&lowbar;view const& eventSchedulerName,
    xref:BloombergLP/bdlm/MetricsRegistry.adoc[bdlm::MetricsRegistry]* metricsRegistry,
    xref:BloombergLP/bslma/Allocator.adoc[bslma::Allocator]* basicAllocator = 0);
----

[.small]#xref:BloombergLP/bdlmt/TimerEventScheduler/2constructor-006.adoc[_» more&period;&period;&period;_]#

Construct a timer event scheduler using the specified `dispatcherFunctor` (see &quot;The dispatcher thread and the dispatcher functor&quot; section in component level doc) that has the capability to concurrently schedule *at least* the specified `numEvents` and `numClocks`, use the realtime clock epoch for all time intervals (see &lsqb;&rsqb;Clock&hyphen;Types)), the specified `eventSchedulerName` to be used to identify this event scheduler, and the specified `metricsRegistry` to be used for reporting metrics&period; If `metricsRegistry` is 0, `bdlm&colon;&colon;MetricsRegistry&colon;&colon;singleton()` is used&period; Optionally specify a `basicAllocator` used to supply memory&period; If `basicAllocator` is 0, the currently installed default allocator is used&period; The behavior is undefined unless `0 &lt;&equals; numEvents &lt; 2&ast;&ast;24` and `0 &lt;&equals; numClocks &lt; 2&ast;&ast;24`&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
xref:BloombergLP/bdlmt/TimerEventScheduler/2constructor-0be.adoc[TimerEventScheduler](
    int numEvents,
    int numClocks,
    xref:BloombergLP/bdlmt/TimerEventScheduler/Dispatcher.adoc[Dispatcher] const& dispatcherFunctor,
    std::string&lowbar;view const& eventSchedulerName,
    xref:BloombergLP/bdlm/MetricsRegistry.adoc[bdlm::MetricsRegistry]* metricsRegistry,
    xref:BloombergLP/bslma/Allocator.adoc[bslma::Allocator]* basicAllocator = 0);
----

[.small]#xref:BloombergLP/bdlmt/TimerEventScheduler/2constructor-0be.adoc[_» more&period;&period;&period;_]#

Construct a timer event scheduler using the specified `dispatcherFunctor` (see &quot;The dispatcher thread and the dispatcher functor&quot; section in component level doc) that has the capability to concurrently schedule *at least* the specified `numEvents` and `numClocks`, use the specified `clockType` to indicate the epoch used for all time intervals (see &lsqb;&rsqb;Clock&hyphen;Types)), the specified `eventSchedulerName` to be used to identify this event scheduler, and the specified `metricsRegistry` to be used for reporting metrics&period; If `metricsRegistry` is 0, `bdlm&colon;&colon;MetricsRegistry&colon;&colon;singleton()` is used&period; Optionally specify a `basicAllocator` used to supply memory&period; If `basicAllocator` is 0, the currently installed default allocator is used&period; The behavior is undefined unless `0 &lt;&equals; numEvents &lt; 2&ast;&ast;24` and `0 &lt;&equals; numClocks &lt; 2&ast;&ast;24`&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
xref:BloombergLP/bdlmt/TimerEventScheduler/2constructor-0a6.adoc[TimerEventScheduler](
    int numEvents,
    int numClocks,
    xref:BloombergLP/bdlmt/TimerEventScheduler/Dispatcher.adoc[Dispatcher] const& dispatcherFunctor,
    xref:BloombergLP/bsls/SystemClockType/Enum.adoc[bsls::SystemClockType::Enum] clockType,
    std::string&lowbar;view const& eventSchedulerName,
    xref:BloombergLP/bdlm/MetricsRegistry.adoc[bdlm::MetricsRegistry]* metricsRegistry,
    xref:BloombergLP/bslma/Allocator.adoc[bslma::Allocator]* basicAllocator = 0);
----

[.small]#xref:BloombergLP/bdlmt/TimerEventScheduler/2constructor-0a6.adoc[_» more&period;&period;&period;_]#


[.small]#Created with https://www.mrdocs.com[MrDocs]#
