Thunderbots Project
Loading...
Searching...
No Matches
ThreadedObserver< T > Class Template Reference

#include <threaded_observer.hpp>

Inheritance diagram for ThreadedObserver< T >:
Collaboration diagram for ThreadedObserver< T >:

Public Member Functions

 ThreadedObserver (size_t buffer_size=Observer< T >::DEFAULT_BUFFER_SIZE, bool log_buffer_full=true)
 
ThreadedObserveroperator= (const ThreadedObserver &)=delete
 
 ThreadedObserver (const ThreadedObserver &)=delete
 
- Public Member Functions inherited from Observer< T, Clock >
 Observer (size_t buffer_size=DEFAULT_BUFFER_SIZE, bool log_buffer_full=true)
 
virtual void receiveValue (T val)
 
virtual double getDataReceivedPerSecond () final
 

Additional Inherited Members

- Static Public Attributes inherited from Observer< T, Clock >
static constexpr size_t TIME_BUFFER_SIZE = 5
 
- Protected Member Functions inherited from Observer< T, Clock >
virtual std::optional< T > popMostRecentlyReceivedValue (Duration max_wait_time) final
 
virtual std::optional< T > popLeastRecentlyReceivedValue (Duration max_wait_time) final
 
- Static Protected Attributes inherited from Observer< T, Clock >
static constexpr size_t DEFAULT_BUFFER_SIZE = 1
 

Detailed Description

template<typename T>
class ThreadedObserver< T >

The general usage of this class should be to extend it, then override onValueReceived with whatever custom functionality should occur when a new value is received, and getNextValue with a function that returns either the first or last received value from the internal buffer.

Template Parameters
TThe type of object this class is observing

Constructor & Destructor Documentation

◆ ThreadedObserver()

template<typename T >
ThreadedObserver ( size_t  buffer_size = Observer<T>::DEFAULT_BUFFER_SIZE,
bool  log_buffer_full = true 
)
explicit

Creates a new ThreadedObserver

Parameters
buffer_sizesize of the buffer
log_buffer_fullwhether or not to log when the buffer is full

The documentation for this class was generated from the following file: