<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<tagfile>
  <compound kind="file">
    <name>bota_worker_test.cpp</name>
    <path>/tmp/ws/src/bota_driver/bota_node/bota_worker/test/</path>
    <filename>bota__worker__test_8cpp</filename>
    <member kind="function">
      <type>int</type>
      <name>main</name>
      <anchorfile>bota__worker__test_8cpp.html</anchorfile>
      <anchor>a3c04138a5bfe5d72780bb7e82a18e627</anchor>
      <arglist>(int argc, char **argv)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>Rate.cpp</name>
    <path>/tmp/ws/src/bota_driver/bota_node/bota_worker/src/</path>
    <filename>Rate_8cpp</filename>
    <includes id="Rate_8hpp" name="Rate.hpp" local="yes" imported="no">bota_worker/Rate.hpp</includes>
    <namespace>bota_worker</namespace>
  </compound>
  <compound kind="file">
    <name>Rate.hpp</name>
    <path>/tmp/ws/src/bota_driver/bota_node/bota_worker/include/bota_worker/</path>
    <filename>Rate_8hpp</filename>
    <includes id="RateOptions_8hpp" name="RateOptions.hpp" local="yes" imported="no">bota_worker/RateOptions.hpp</includes>
    <class kind="class">bota_worker::Rate</class>
    <namespace>bota_worker</namespace>
  </compound>
  <compound kind="file">
    <name>RateOptions.hpp</name>
    <path>/tmp/ws/src/bota_driver/bota_node/bota_worker/include/bota_worker/</path>
    <filename>RateOptions_8hpp</filename>
    <class kind="struct">bota_worker::RateOptions</class>
    <namespace>bota_worker</namespace>
  </compound>
  <compound kind="file">
    <name>RateTest.cpp</name>
    <path>/tmp/ws/src/bota_driver/bota_node/bota_worker/test/</path>
    <filename>RateTest_8cpp</filename>
    <includes id="Rate_8hpp" name="Rate.hpp" local="yes" imported="no">bota_worker/Rate.hpp</includes>
    <member kind="define">
      <type>#define</type>
      <name>RATE_TEST_TOL</name>
      <anchorfile>RateTest_8cpp.html</anchorfile>
      <anchor>a93c1a865f61b29b5460bc76ea94d27ec</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>RATE_TEST_TOL_BUILD_SERVER</name>
      <anchorfile>RateTest_8cpp.html</anchorfile>
      <anchor>a159f634bc4c595fce91adc3ff6e7497c</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>RATE_TEST_TOL_LOCAL</name>
      <anchorfile>RateTest_8cpp.html</anchorfile>
      <anchor>a4b268c5b5ba74ee712e00970f376a8a1</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>doSomething</name>
      <anchorfile>RateTest_8cpp.html</anchorfile>
      <anchor>a07f05f393300fceaf8e422a996cb1d53</anchor>
      <arglist>(const double duration)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>RateTest_8cpp.html</anchorfile>
      <anchor>ab9fe94fed2dc2596d93002b2afcc05a2</anchor>
      <arglist>(RateTest, Initialization)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>RateTest_8cpp.html</anchorfile>
      <anchor>a1f35d4207964596621358971ba01acbe</anchor>
      <arglist>(RateTest, Reset)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>RateTest_8cpp.html</anchorfile>
      <anchor>a0bc7a2f196cd8bf53991327084f60b71</anchor>
      <arglist>(RateTest, SleepWithEnforceRate)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>RateTest_8cpp.html</anchorfile>
      <anchor>a9724ba8e2e3b6f9d710309823ba0a664</anchor>
      <arglist>(RateTest, SleepWithoutEnforceRate)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>RateTest_8cpp.html</anchorfile>
      <anchor>a86cd441c47bd01321011c4f49acaf450</anchor>
      <arglist>(RateTest, WarningsAndErrors)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>RateTest_8cpp.html</anchorfile>
      <anchor>ac6b4693749fb8473ddcecee884977d91</anchor>
      <arglist>(RateTest, StatisticsWithEnforceRate)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>RateTest_8cpp.html</anchorfile>
      <anchor>ab60c13f94f340e5a442269b21a38c7e9</anchor>
      <arglist>(RateTest, StatisticsWithoutEnforceRate)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>Worker.cpp</name>
    <path>/tmp/ws/src/bota_driver/bota_node/bota_worker/src/</path>
    <filename>Worker_8cpp</filename>
    <includes id="Worker_8hpp" name="Worker.hpp" local="yes" imported="no">bota_worker/Worker.hpp</includes>
    <namespace>bota_worker</namespace>
  </compound>
  <compound kind="file">
    <name>Worker.hpp</name>
    <path>/tmp/ws/src/bota_driver/bota_node/bota_worker/include/bota_worker/</path>
    <filename>Worker_8hpp</filename>
    <includes id="Rate_8hpp" name="Rate.hpp" local="yes" imported="no">bota_worker/Rate.hpp</includes>
    <includes id="WorkerEvent_8hpp" name="WorkerEvent.hpp" local="yes" imported="no">bota_worker/WorkerEvent.hpp</includes>
    <includes id="WorkerOptions_8hpp" name="WorkerOptions.hpp" local="yes" imported="no">bota_worker/WorkerOptions.hpp</includes>
    <class kind="class">bota_worker::Worker</class>
    <namespace>bota_worker</namespace>
  </compound>
  <compound kind="file">
    <name>WorkerEvent.hpp</name>
    <path>/tmp/ws/src/bota_driver/bota_node/bota_worker/include/bota_worker/</path>
    <filename>WorkerEvent_8hpp</filename>
    <class kind="struct">bota_worker::WorkerEvent</class>
    <namespace>bota_worker</namespace>
  </compound>
  <compound kind="file">
    <name>WorkerManager.cpp</name>
    <path>/tmp/ws/src/bota_driver/bota_node/bota_worker/src/</path>
    <filename>WorkerManager_8cpp</filename>
    <includes id="WorkerManager_8hpp" name="WorkerManager.hpp" local="yes" imported="no">bota_worker/WorkerManager.hpp</includes>
    <namespace>bota_worker</namespace>
  </compound>
  <compound kind="file">
    <name>WorkerManager.hpp</name>
    <path>/tmp/ws/src/bota_driver/bota_node/bota_worker/include/bota_worker/</path>
    <filename>WorkerManager_8hpp</filename>
    <includes id="Worker_8hpp" name="Worker.hpp" local="yes" imported="no">bota_worker/Worker.hpp</includes>
    <includes id="WorkerOptions_8hpp" name="WorkerOptions.hpp" local="yes" imported="no">bota_worker/WorkerOptions.hpp</includes>
    <class kind="class">bota_worker::WorkerManager</class>
    <namespace>bota_worker</namespace>
  </compound>
  <compound kind="file">
    <name>WorkerOptions.hpp</name>
    <path>/tmp/ws/src/bota_driver/bota_node/bota_worker/include/bota_worker/</path>
    <filename>WorkerOptions_8hpp</filename>
    <includes id="RateOptions_8hpp" name="RateOptions.hpp" local="yes" imported="no">bota_worker/RateOptions.hpp</includes>
    <includes id="WorkerEvent_8hpp" name="WorkerEvent.hpp" local="yes" imported="no">bota_worker/WorkerEvent.hpp</includes>
    <class kind="struct">bota_worker::WorkerOptions</class>
    <namespace>bota_worker</namespace>
    <member kind="typedef">
      <type>std::function&lt; bool(const WorkerEvent &amp;)&gt;</type>
      <name>WorkerCallback</name>
      <anchorfile>namespacebota__worker.html</anchorfile>
      <anchor>a683448bd2a23a064eb12a0abd35daea3</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>std::function&lt; void(void)&gt;</type>
      <name>WorkerCallbackFailureReaction</name>
      <anchorfile>namespacebota__worker.html</anchorfile>
      <anchor>ac3eb4cca6c9ab3d8f4b432f41a74cdab</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>bota_worker::Rate</name>
    <filename>classbota__worker_1_1Rate.html</filename>
    <member kind="function">
      <type>double</type>
      <name>getAwakeTime</name>
      <anchorfile>classbota__worker_1_1Rate.html</anchorfile>
      <anchor>a52ba315aa6865018017aa99115282748</anchor>
      <arglist>() const </arglist>
    </member>
    <member kind="function">
      <type>double</type>
      <name>getAwakeTimeMean</name>
      <anchorfile>classbota__worker_1_1Rate.html</anchorfile>
      <anchor>a0ffbb14ef8c0c58c0378088f50b983a6</anchor>
      <arglist>() const </arglist>
    </member>
    <member kind="function">
      <type>double</type>
      <name>getAwakeTimeStdDev</name>
      <anchorfile>classbota__worker_1_1Rate.html</anchorfile>
      <anchor>ae89e2b59b0fed178aeb06c69659c195e</anchor>
      <arglist>() const </arglist>
    </member>
    <member kind="function">
      <type>double</type>
      <name>getAwakeTimeVar</name>
      <anchorfile>classbota__worker_1_1Rate.html</anchorfile>
      <anchor>af047321cf5dd58f96d5bf83ec6155668</anchor>
      <arglist>() const </arglist>
    </member>
    <member kind="function">
      <type>unsigned int</type>
      <name>getNumErrors</name>
      <anchorfile>classbota__worker_1_1Rate.html</anchorfile>
      <anchor>ad32b5622742cebd26fdac7f278628b20</anchor>
      <arglist>() const </arglist>
    </member>
    <member kind="function">
      <type>unsigned int</type>
      <name>getNumTimeSteps</name>
      <anchorfile>classbota__worker_1_1Rate.html</anchorfile>
      <anchor>a0ddeb8c4a389aae0e4f3b4b6bee11515</anchor>
      <arglist>() const </arglist>
    </member>
    <member kind="function">
      <type>unsigned int</type>
      <name>getNumWarnings</name>
      <anchorfile>classbota__worker_1_1Rate.html</anchorfile>
      <anchor>ab86fe4d6bc61b7ca3087c68b8ca8dc86</anchor>
      <arglist>() const </arglist>
    </member>
    <member kind="function">
      <type>RateOptions &amp;</type>
      <name>getOptions</name>
      <anchorfile>classbota__worker_1_1Rate.html</anchorfile>
      <anchor>a9dcf4a43931758b4f81bd8cee8e7e742</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>const RateOptions &amp;</type>
      <name>getOptions</name>
      <anchorfile>classbota__worker_1_1Rate.html</anchorfile>
      <anchor>a2d455039dee9d857f2269c131d980eb5</anchor>
      <arglist>() const </arglist>
    </member>
    <member kind="function">
      <type>const timespec &amp;</type>
      <name>getSleepEndTime</name>
      <anchorfile>classbota__worker_1_1Rate.html</anchorfile>
      <anchor>a2f2e78cfe229748a9961ce7f4fd0b079</anchor>
      <arglist>() const </arglist>
    </member>
    <member kind="function">
      <type>const timespec &amp;</type>
      <name>getSleepStartTime</name>
      <anchorfile>classbota__worker_1_1Rate.html</anchorfile>
      <anchor>ad7eb977fc091fef81c85089ecb2b8831</anchor>
      <arglist>() const </arglist>
    </member>
    <member kind="function">
      <type>const timespec &amp;</type>
      <name>getStepTime</name>
      <anchorfile>classbota__worker_1_1Rate.html</anchorfile>
      <anchor>a44cdefff24711760958f313144f2026c</anchor>
      <arglist>() const </arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>Rate</name>
      <anchorfile>classbota__worker_1_1Rate.html</anchorfile>
      <anchor>afae80d384cd8811e497fb90932fa2e5a</anchor>
      <arglist>(const std::string &amp;name, const double timeStep)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>Rate</name>
      <anchorfile>classbota__worker_1_1Rate.html</anchorfile>
      <anchor>affbdb3bdcfa0f48f4e4dc738260733a8</anchor>
      <arglist>(RateOptions options)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>Rate</name>
      <anchorfile>classbota__worker_1_1Rate.html</anchorfile>
      <anchor>a9c968ba11b22c7a2d0d8503bab1a966c</anchor>
      <arglist>(Rate &amp;&amp;other) noexcept</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>reset</name>
      <anchorfile>classbota__worker_1_1Rate.html</anchorfile>
      <anchor>ad770ca431dc042d9f20129e6729cf70b</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>sleep</name>
      <anchorfile>classbota__worker_1_1Rate.html</anchorfile>
      <anchor>a54a11648ae960c58d26224b17116a633</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>addDuration</name>
      <anchorfile>classbota__worker_1_1Rate.html</anchorfile>
      <anchor>ab694e4a49b94b63cd87e8c83ce641552</anchor>
      <arglist>(timespec &amp;time, const double duration)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static double</type>
      <name>getDuration</name>
      <anchorfile>classbota__worker_1_1Rate.html</anchorfile>
      <anchor>a75665ecf8c8d960dd3c2ffc42bdec51e</anchor>
      <arglist>(const timespec &amp;start, const timespec &amp;end)</arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>double</type>
      <name>awakeTime_</name>
      <anchorfile>classbota__worker_1_1Rate.html</anchorfile>
      <anchor>a291ff40067d898e9257020b8c094042c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>double</type>
      <name>awakeTimeM2_</name>
      <anchorfile>classbota__worker_1_1Rate.html</anchorfile>
      <anchor>a0ac17e3dfd769a843e27b5d82e7d94a3</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>double</type>
      <name>awakeTimeMean_</name>
      <anchorfile>classbota__worker_1_1Rate.html</anchorfile>
      <anchor>ad92f5ad654cb4b87a1eb9c9e93fac009</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>timespec</type>
      <name>lastErrorPrintTime_</name>
      <anchorfile>classbota__worker_1_1Rate.html</anchorfile>
      <anchor>ac7286008700c0b7d40bd0718696c1918</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>timespec</type>
      <name>lastWarningPrintTime_</name>
      <anchorfile>classbota__worker_1_1Rate.html</anchorfile>
      <anchor>aca73e8f245cea29ad29d515a8600edd6</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>unsigned int</type>
      <name>numErrors_</name>
      <anchorfile>classbota__worker_1_1Rate.html</anchorfile>
      <anchor>a8fdf6254d59c5a59db2ed0bad4a4c12c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>unsigned int</type>
      <name>numTimeSteps_</name>
      <anchorfile>classbota__worker_1_1Rate.html</anchorfile>
      <anchor>ac01b1aae2f7b6c0808d644b0681320e5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>unsigned int</type>
      <name>numWarnings_</name>
      <anchorfile>classbota__worker_1_1Rate.html</anchorfile>
      <anchor>ae7e68d8e73793212aff88167d08fd21c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>RateOptions</type>
      <name>options_</name>
      <anchorfile>classbota__worker_1_1Rate.html</anchorfile>
      <anchor>add020bb910d866895810da3dc3749ee3</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>timespec</type>
      <name>sleepEndTime_</name>
      <anchorfile>classbota__worker_1_1Rate.html</anchorfile>
      <anchor>a88fb864b3fd4a8ea70fad4d6a2b8d4f2</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>timespec</type>
      <name>sleepStartTime_</name>
      <anchorfile>classbota__worker_1_1Rate.html</anchorfile>
      <anchor>aeac0039f46b32ea581adfb1141681afa</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>timespec</type>
      <name>stepTime_</name>
      <anchorfile>classbota__worker_1_1Rate.html</anchorfile>
      <anchor>aef98815b5f68b08d51dde173ea610708</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected" static="yes">
      <type>static constexpr long int</type>
      <name>N_SEC_PER_SEC</name>
      <anchorfile>classbota__worker_1_1Rate.html</anchorfile>
      <anchor>a1f544355e982087a042f9a77cdeb64c5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected" static="yes">
      <type>static constexpr double</type>
      <name>SEC_PER_N_SEC</name>
      <anchorfile>classbota__worker_1_1Rate.html</anchorfile>
      <anchor>a82003ee4ec5aef1e87a84bc051197a5c</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>bota_worker::RateOptions</name>
    <filename>structbota__worker_1_1RateOptions.html</filename>
    <member kind="function" virtualness="virtual">
      <type>virtual bool</type>
      <name>isValid</name>
      <anchorfile>structbota__worker_1_1RateOptions.html</anchorfile>
      <anchor>aa53d01476160b959f0b172b5640dce13</anchor>
      <arglist>() const </arglist>
    </member>
    <member kind="function">
      <type>RateOptions &amp;</type>
      <name>operator=</name>
      <anchorfile>structbota__worker_1_1RateOptions.html</anchorfile>
      <anchor>a7d7980c3d2951ad1271d7f8d54acf09e</anchor>
      <arglist>(const RateOptions &amp;other)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>RateOptions</name>
      <anchorfile>structbota__worker_1_1RateOptions.html</anchorfile>
      <anchor>a7f4e57eb092f515c63e29dbabc134ce5</anchor>
      <arglist>(std::string name=&quot;&quot;, const double timeStep=0.0, const double maxTimeStepFactorWarning=1.0, const double maxTimeStepFactorError=10.0, const bool enforceRate=true, const clockid_t clockId=CLOCK_MONOTONIC)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>RateOptions</name>
      <anchorfile>structbota__worker_1_1RateOptions.html</anchorfile>
      <anchor>a8e27ce2065d18cfebd853f35c4692152</anchor>
      <arglist>(const RateOptions &amp;other)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>RateOptions</name>
      <anchorfile>structbota__worker_1_1RateOptions.html</anchorfile>
      <anchor>aa650c9065bcfd6cd9eb8e3fbf0e6ad0f</anchor>
      <arglist>(RateOptions &amp;&amp;other) noexcept</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual</type>
      <name>~RateOptions</name>
      <anchorfile>structbota__worker_1_1RateOptions.html</anchorfile>
      <anchor>a48fb4344e60a04118c4b4fd74b9f9af6</anchor>
      <arglist>()=default</arglist>
    </member>
    <member kind="variable">
      <type>std::atomic&lt; clockid_t &gt;</type>
      <name>clockId_</name>
      <anchorfile>structbota__worker_1_1RateOptions.html</anchorfile>
      <anchor>a3a8ee6ba94ef34a827489147c0392be9</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>std::atomic&lt; bool &gt;</type>
      <name>enforceRate_</name>
      <anchorfile>structbota__worker_1_1RateOptions.html</anchorfile>
      <anchor>a4da551b3d4280a36e52d3e0854d358ba</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>std::atomic&lt; double &gt;</type>
      <name>maxTimeStepFactorError_</name>
      <anchorfile>structbota__worker_1_1RateOptions.html</anchorfile>
      <anchor>a893cb88bb7d914d89330bf9baafd7e1b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>std::atomic&lt; double &gt;</type>
      <name>maxTimeStepFactorWarning_</name>
      <anchorfile>structbota__worker_1_1RateOptions.html</anchorfile>
      <anchor>a4a767e1256a6373a5db313056226ba80</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>std::string</type>
      <name>name_</name>
      <anchorfile>structbota__worker_1_1RateOptions.html</anchorfile>
      <anchor>a7f0ee0f21a665b6f9f9e09d067851ecf</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>std::atomic&lt; double &gt;</type>
      <name>timeStep_</name>
      <anchorfile>structbota__worker_1_1RateOptions.html</anchorfile>
      <anchor>ac5a641ef53419dda83a5f183277f363a</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>bota_worker::Worker</name>
    <filename>classbota__worker_1_1Worker.html</filename>
    <member kind="function">
      <type>const std::string &amp;</type>
      <name>getName</name>
      <anchorfile>classbota__worker_1_1Worker.html</anchorfile>
      <anchor>a0ee65ce2c2de38411ae12efe0015f79c</anchor>
      <arglist>() const </arglist>
    </member>
    <member kind="function">
      <type>const Rate &amp;</type>
      <name>getRate</name>
      <anchorfile>classbota__worker_1_1Worker.html</anchorfile>
      <anchor>abf5c036c16380ed38ea6bf377b299b89</anchor>
      <arglist>() const </arglist>
    </member>
    <member kind="function">
      <type>Rate &amp;</type>
      <name>getRate</name>
      <anchorfile>classbota__worker_1_1Worker.html</anchorfile>
      <anchor>ab34bb6dab87078ad3c92d92d6754874d</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>isDestructible</name>
      <anchorfile>classbota__worker_1_1Worker.html</anchorfile>
      <anchor>ae02b6da02592a93fed71f3d651d01679</anchor>
      <arglist>() const </arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>isRunning</name>
      <anchorfile>classbota__worker_1_1Worker.html</anchorfile>
      <anchor>af6a4bd82850c3822b972e0348d93590b</anchor>
      <arglist>() const </arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>setEnforceRate</name>
      <anchorfile>classbota__worker_1_1Worker.html</anchorfile>
      <anchor>a7a4842ee77851364a9407a747de8ddbf</anchor>
      <arglist>(const bool enforceRate)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>setTimestep</name>
      <anchorfile>classbota__worker_1_1Worker.html</anchorfile>
      <anchor>a45f234e2dc29cddc59b9e7c7ad9cc38f</anchor>
      <arglist>(const double timeStep)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>start</name>
      <anchorfile>classbota__worker_1_1Worker.html</anchorfile>
      <anchor>a649de3505e8a1108b42d6d40a3935260</anchor>
      <arglist>(const int priority=0)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>stop</name>
      <anchorfile>classbota__worker_1_1Worker.html</anchorfile>
      <anchor>ae20d0979243d5f6a0e40cd126dd34a33</anchor>
      <arglist>(const bool wait=true)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>Worker</name>
      <anchorfile>classbota__worker_1_1Worker.html</anchorfile>
      <anchor>a439e6e13fce5458add0c3db9be037540</anchor>
      <arglist>()=delete</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>Worker</name>
      <anchorfile>classbota__worker_1_1Worker.html</anchorfile>
      <anchor>a2eb98753313ab3505135bb2737bfc996</anchor>
      <arglist>(const std::string &amp;name, const double timestep, const WorkerCallback &amp;callback)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>Worker</name>
      <anchorfile>classbota__worker_1_1Worker.html</anchorfile>
      <anchor>a83def72d45dd6639f2e7e4e0164b8fa1</anchor>
      <arglist>(const std::string &amp;name, const double timestep, const WorkerCallback &amp;callback, const WorkerCallbackFailureReaction &amp;callbackFailureReaction)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>Worker</name>
      <anchorfile>classbota__worker_1_1Worker.html</anchorfile>
      <anchor>afcb8b294b227d96ea64f60e7a6e80433</anchor>
      <arglist>(const WorkerOptions &amp;options)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>Worker</name>
      <anchorfile>classbota__worker_1_1Worker.html</anchorfile>
      <anchor>affde72146472f2172c4154b078cc202e</anchor>
      <arglist>(const Worker &amp;)=delete</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>Worker</name>
      <anchorfile>classbota__worker_1_1Worker.html</anchorfile>
      <anchor>a53e17c7db37be3f1f4ee5cc24848ede7</anchor>
      <arglist>(Worker &amp;&amp;) noexcept</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual</type>
      <name>~Worker</name>
      <anchorfile>classbota__worker_1_1Worker.html</anchorfile>
      <anchor>a2c73257e9a1d04997414c72deee435f0</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>run</name>
      <anchorfile>classbota__worker_1_1Worker.html</anchorfile>
      <anchor>aaeb4f962324c61adfbdd8040baff1beb</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::atomic&lt; bool &gt;</type>
      <name>done_</name>
      <anchorfile>classbota__worker_1_1Worker.html</anchorfile>
      <anchor>a8bc2d6d73be39688440a591facb3b472</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>WorkerOptions</type>
      <name>options_</name>
      <anchorfile>classbota__worker_1_1Worker.html</anchorfile>
      <anchor>aa348a802584032528a803c3494688ad6</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>Rate</type>
      <name>rate_</name>
      <anchorfile>classbota__worker_1_1Worker.html</anchorfile>
      <anchor>aa542107dc1ccc452a6c8c123820b4fa6</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::atomic&lt; bool &gt;</type>
      <name>running_</name>
      <anchorfile>classbota__worker_1_1Worker.html</anchorfile>
      <anchor>a101b2e2e739ae003f582a02261095de8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::thread</type>
      <name>thread_</name>
      <anchorfile>classbota__worker_1_1Worker.html</anchorfile>
      <anchor>a33634c3e68f2414462ead089346d65c4</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>bota_worker::WorkerEvent</name>
    <filename>structbota__worker_1_1WorkerEvent.html</filename>
    <member kind="function">
      <type></type>
      <name>WorkerEvent</name>
      <anchorfile>structbota__worker_1_1WorkerEvent.html</anchorfile>
      <anchor>a3b55ff56e7af3eb5d8f703c5295d056b</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>WorkerEvent</name>
      <anchorfile>structbota__worker_1_1WorkerEvent.html</anchorfile>
      <anchor>ae12bd9d7ea9abcaf87721bea59357d7a</anchor>
      <arglist>(const double dt, const timespec &amp;time)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual</type>
      <name>~WorkerEvent</name>
      <anchorfile>structbota__worker_1_1WorkerEvent.html</anchorfile>
      <anchor>a32736bf5dafabd846da5ef2b4b06a8a2</anchor>
      <arglist>()=default</arglist>
    </member>
    <member kind="variable">
      <type>timespec</type>
      <name>timeStamp</name>
      <anchorfile>structbota__worker_1_1WorkerEvent.html</anchorfile>
      <anchor>a42325968987be2a0e48da44f5cff5815</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>double</type>
      <name>timeStep</name>
      <anchorfile>structbota__worker_1_1WorkerEvent.html</anchorfile>
      <anchor>af505977f480e7a0c8cfeb89cfa7bda12</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>bota_worker::WorkerManager</name>
    <filename>classbota__worker_1_1WorkerManager.html</filename>
    <member kind="function">
      <type>bool</type>
      <name>addWorker</name>
      <anchorfile>classbota__worker_1_1WorkerManager.html</anchorfile>
      <anchor>a4792ccfd8f84391eda95db6672564d40</anchor>
      <arglist>(const std::string &amp;name, const double timestep, bool(T::*fp)(const WorkerEvent &amp;), T *obj, const int priority=0, const bool autostart=true)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>addWorker</name>
      <anchorfile>classbota__worker_1_1WorkerManager.html</anchorfile>
      <anchor>a9baf6a6b1f8e422b7f314fa473036055</anchor>
      <arglist>(const std::string &amp;name, const double timestep, bool(T::*cfp)(const WorkerEvent &amp;), void(T::*rfp)(), T *obj, const int priority=0, const bool autostart=true)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>addWorker</name>
      <anchorfile>classbota__worker_1_1WorkerManager.html</anchorfile>
      <anchor>a9c5ca65375b35c88c350cfac1e770b77</anchor>
      <arglist>(const std::string &amp;name, const double timestep, const WorkerCallback &amp;callback, const int priority=0, const bool autostart=true)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>addWorker</name>
      <anchorfile>classbota__worker_1_1WorkerManager.html</anchorfile>
      <anchor>a7c8db7eb0c743455bc0e1f083689ee38</anchor>
      <arglist>(const std::string &amp;name, const double timestep, const WorkerCallback &amp;callback, const WorkerCallbackFailureReaction &amp;callbackFailureReaction, const int priority=0, const bool autostart=true)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>addWorker</name>
      <anchorfile>classbota__worker_1_1WorkerManager.html</anchorfile>
      <anchor>a0456219669b5775fd9a697abbc55a1d4</anchor>
      <arglist>(const WorkerOptions &amp;options, const bool autostart=true)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>cancelWorker</name>
      <anchorfile>classbota__worker_1_1WorkerManager.html</anchorfile>
      <anchor>a8975d05ebb563a093e7926f90dcb5913</anchor>
      <arglist>(const std::string &amp;name, const bool wait=true)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>cancelWorkers</name>
      <anchorfile>classbota__worker_1_1WorkerManager.html</anchorfile>
      <anchor>ac5bd0c726bed3c04f343093a48d23a00</anchor>
      <arglist>(const bool wait=true)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>cleanDestructibleWorkers</name>
      <anchorfile>classbota__worker_1_1WorkerManager.html</anchorfile>
      <anchor>a8154921fe1bfed5c16ba523b8173e7d1</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>hasWorker</name>
      <anchorfile>classbota__worker_1_1WorkerManager.html</anchorfile>
      <anchor>a3e88c0b6b0a769328243d2b230d5b2f0</anchor>
      <arglist>(const std::string &amp;name)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>setWorkerTimestep</name>
      <anchorfile>classbota__worker_1_1WorkerManager.html</anchorfile>
      <anchor>a448e1eb2d6f26836a10173ee020aef4d</anchor>
      <arglist>(const std::string &amp;name, const double timeStep)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>startWorker</name>
      <anchorfile>classbota__worker_1_1WorkerManager.html</anchorfile>
      <anchor>ac9cf2bb5a3405776add58fa83ab29b83</anchor>
      <arglist>(const std::string &amp;name, const int priority=0)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>startWorkers</name>
      <anchorfile>classbota__worker_1_1WorkerManager.html</anchorfile>
      <anchor>af4b39ef53317c7a4a93ed1f98ef07b2b</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>stopWorker</name>
      <anchorfile>classbota__worker_1_1WorkerManager.html</anchorfile>
      <anchor>af98f92b8b8ee6043f858e51de3371e31</anchor>
      <arglist>(const std::string &amp;name, const bool wait=true)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>stopWorkers</name>
      <anchorfile>classbota__worker_1_1WorkerManager.html</anchorfile>
      <anchor>a26ce6d83fe0569f84d3dc0ed39c4af14</anchor>
      <arglist>(const bool wait=true)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>WorkerManager</name>
      <anchorfile>classbota__worker_1_1WorkerManager.html</anchorfile>
      <anchor>a753ca4a5d9e306ccc36c1efc0faedaba</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual</type>
      <name>~WorkerManager</name>
      <anchorfile>classbota__worker_1_1WorkerManager.html</anchorfile>
      <anchor>ac4c94bd357720ef616de401f7e049cd4</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::mutex</type>
      <name>mutexWorkers_</name>
      <anchorfile>classbota__worker_1_1WorkerManager.html</anchorfile>
      <anchor>a83b79e5e3794b7b9717329526030d0a0</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::unordered_map&lt; std::string, Worker &gt;</type>
      <name>workers_</name>
      <anchorfile>classbota__worker_1_1WorkerManager.html</anchorfile>
      <anchor>aaaa59e09324b1a0487da36d51a76f75e</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>bota_worker::WorkerOptions</name>
    <filename>structbota__worker_1_1WorkerOptions.html</filename>
    <base>bota_worker::RateOptions</base>
    <member kind="function">
      <type></type>
      <name>WorkerOptions</name>
      <anchorfile>structbota__worker_1_1WorkerOptions.html</anchorfile>
      <anchor>a637b5e75510c7ebf0fc5cf626e50bed1</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>WorkerOptions</name>
      <anchorfile>structbota__worker_1_1WorkerOptions.html</anchorfile>
      <anchor>a1aa11e4d71836dd0f59885023cf4510d</anchor>
      <arglist>(const std::string &amp;name, const double timestep, WorkerCallback callback, const int priority=0)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>WorkerOptions</name>
      <anchorfile>structbota__worker_1_1WorkerOptions.html</anchorfile>
      <anchor>aa8af64d11954258f6757fa7dc33bd97d</anchor>
      <arglist>(const std::string &amp;name, const double timestep, WorkerCallback callback, WorkerCallbackFailureReaction callbackFailureReaction, const int priority=0)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>WorkerOptions</name>
      <anchorfile>structbota__worker_1_1WorkerOptions.html</anchorfile>
      <anchor>a2f84e744f72104b25055a6d13605c732</anchor>
      <arglist>(const WorkerOptions &amp;other)=default</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>WorkerOptions</name>
      <anchorfile>structbota__worker_1_1WorkerOptions.html</anchorfile>
      <anchor>a73097f5a1fa81c508934d0c3155d3be8</anchor>
      <arglist>(WorkerOptions &amp;&amp;other) noexcept</arglist>
    </member>
    <member kind="variable">
      <type>WorkerCallback</type>
      <name>callback_</name>
      <anchorfile>structbota__worker_1_1WorkerOptions.html</anchorfile>
      <anchor>a316f893e6210efe8eab7c4713d892ddd</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>WorkerCallbackFailureReaction</type>
      <name>callbackFailureReaction_</name>
      <anchorfile>structbota__worker_1_1WorkerOptions.html</anchorfile>
      <anchor>ac121ba268be7cd37cc64a4c8ea80ba29</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>defaultPriority_</name>
      <anchorfile>structbota__worker_1_1WorkerOptions.html</anchorfile>
      <anchor>aac2e7602d2f743b255ab439603e3c56d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>bool</type>
      <name>destructWhenDone_</name>
      <anchorfile>structbota__worker_1_1WorkerOptions.html</anchorfile>
      <anchor>a12a570574189c31f69fb664e3af98135</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="namespace">
    <name>bota_worker</name>
    <filename>namespacebota__worker.html</filename>
    <class kind="class">bota_worker::Rate</class>
    <class kind="struct">bota_worker::RateOptions</class>
    <class kind="class">bota_worker::Worker</class>
    <class kind="struct">bota_worker::WorkerEvent</class>
    <class kind="class">bota_worker::WorkerManager</class>
    <class kind="struct">bota_worker::WorkerOptions</class>
    <member kind="typedef">
      <type>std::function&lt; bool(const WorkerEvent &amp;)&gt;</type>
      <name>WorkerCallback</name>
      <anchorfile>namespacebota__worker.html</anchorfile>
      <anchor>a683448bd2a23a064eb12a0abd35daea3</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>std::function&lt; void(void)&gt;</type>
      <name>WorkerCallbackFailureReaction</name>
      <anchorfile>namespacebota__worker.html</anchorfile>
      <anchor>ac3eb4cca6c9ab3d8f4b432f41a74cdab</anchor>
      <arglist></arglist>
    </member>
  </compound>
</tagfile>
