<p>The <ahref="classtf_1_1ObserverInterface.html" class="m-doc">tf::<wbr/>ObserverInterface</a> class allows users to define custom methods to monitor the behaviors of an executor. This is particularly useful when you want to inspect the performance of an executor and visualize when each thread participates in the execution of a task. To prevent users from direct access to the internal threads and tasks, <ahref="classtf_1_1ObserverInterface.html" class="m-doc">tf::<wbr/>ObserverInterface</a> provides immutable wrappers, <ahref="classtf_1_1WorkerView.html" class="m-doc">tf::<wbr/>WorkerView</a> and <ahref="classtf_1_1TaskView.html" class="m-doc">tf::<wbr/>TaskView</a>, over workers and tasks.</p><p>Please refer to <ahref="classtf_1_1WorkerView.html" class="m-doc">tf::<wbr/>WorkerView</a> and <ahref="classtf_1_1TaskView.html" class="m-doc">tf::<wbr/>TaskView</a> for details.</p><p>Example usage:</p><preclass="m-code"><spanclass="k">struct</span><spanclass="w"></span><spanclass="nc">MyObserver</span><spanclass="w"></span><spanclass="o">:</span><spanclass="w"></span><spanclass="k">public</span><spanclass="w"></span><spanclass="n">tf</span><spanclass="o">::</span><spanclass="n">ObserverInterface</span><spanclass="w"></span><spanclass="p">{</span>
<spanclass="w"></span><spanclass="n">std</span><spanclass="o">::</span><spanclass="n">cout</span><spanclass="w"></span><spanclass="o"><<</span><spanclass="w"></span><spanclass="s">"setting up observer with "</span><spanclass="w"></span><spanclass="o"><<</span><spanclass="w"></span><spanclass="n">num_workers</span><spanclass="w"></span><spanclass="o"><<</span><spanclass="w"></span><spanclass="s">" workers</span><spanclass="se">\n</span><spanclass="s">"</span><spanclass="p">;</span>
<spanclass="w"></span><spanclass="n">oss</span><spanclass="w"></span><spanclass="o"><<</span><spanclass="w"></span><spanclass="s">"worker "</span><spanclass="w"></span><spanclass="o"><<</span><spanclass="w"></span><spanclass="n">w</span><spanclass="p">.</span><spanclass="n">id</span><spanclass="p">()</span><spanclass="w"></span><spanclass="o"><<</span><spanclass="w"></span><spanclass="s">" ready to run "</span><spanclass="w"></span><spanclass="o"><<</span><spanclass="w"></span><spanclass="n">tv</span><spanclass="p">.</span><spanclass="n">name</span><spanclass="p">()</span><spanclass="w"></span><spanclass="o"><<</span><spanclass="w"></span><spanclass="sc">'\n'</span><spanclass="p">;</span>