WPILibC++ 2027.0.0-alpha-4
Loading...
Searching...
No Matches
wpi::util::CallbackThread< Derived, TUserInfo, TListenerData, TNotifierData > Class Template Reference

#include <wpi/util/CallbackManager.hpp>

Inheritance diagram for wpi::util::CallbackThread< Derived, TUserInfo, TListenerData, TNotifierData >:
wpi::util::SafeThread wpi::util::SafeThreadBase

Classes

struct  Poller

Public Types

using UserInfo = TUserInfo
using NotifierData = TNotifierData
using ListenerData = TListenerData

Public Member Functions

 CallbackThread (std::function< void()> on_start, std::function< void()> on_exit)
 ~CallbackThread () override
void Main () override
template<typename... Args>
void SendPoller (unsigned int poller_uid, Args &&... args)
Public Member Functions inherited from wpi::util::SafeThread
void Stop () override
Public Member Functions inherited from wpi::util::SafeThreadBase
virtual ~SafeThreadBase ()=default

Public Attributes

wpi::util::UidVector< ListenerData, 64 > m_listeners
std::queue< std::pair< unsigned int, NotifierData > > m_queue
wpi::util::condition_variable m_queue_empty
wpi::util::UidVector< std::shared_ptr< Poller >, 64 > m_pollers
std::function< void()> m_on_start
std::function< void()> m_on_exit
Public Attributes inherited from wpi::util::SafeThread
wpi::util::condition_variable m_cond
Public Attributes inherited from wpi::util::SafeThreadBase
wpi::util::mutex m_mutex
std::atomic_bool m_active {true}
std::thread::id m_threadId

Member Typedef Documentation

◆ ListenerData

template<typename Derived, typename TUserInfo, typename TListenerData = CallbackListenerData<std::function<void(const TUserInfo& info)>>, typename TNotifierData = TUserInfo>
using wpi::util::CallbackThread< Derived, TUserInfo, TListenerData, TNotifierData >::ListenerData = TListenerData

◆ NotifierData

template<typename Derived, typename TUserInfo, typename TListenerData = CallbackListenerData<std::function<void(const TUserInfo& info)>>, typename TNotifierData = TUserInfo>
using wpi::util::CallbackThread< Derived, TUserInfo, TListenerData, TNotifierData >::NotifierData = TNotifierData

◆ UserInfo

template<typename Derived, typename TUserInfo, typename TListenerData = CallbackListenerData<std::function<void(const TUserInfo& info)>>, typename TNotifierData = TUserInfo>
using wpi::util::CallbackThread< Derived, TUserInfo, TListenerData, TNotifierData >::UserInfo = TUserInfo

Constructor & Destructor Documentation

◆ CallbackThread()

template<typename Derived, typename TUserInfo, typename TListenerData = CallbackListenerData<std::function<void(const TUserInfo& info)>>, typename TNotifierData = TUserInfo>
wpi::util::CallbackThread< Derived, TUserInfo, TListenerData, TNotifierData >::CallbackThread ( std::function< void()> on_start,
std::function< void()> on_exit )
inline

◆ ~CallbackThread()

template<typename Derived, typename TUserInfo, typename TListenerData = CallbackListenerData<std::function<void(const TUserInfo& info)>>, typename TNotifierData = TUserInfo>
wpi::util::CallbackThread< Derived, TUserInfo, TListenerData, TNotifierData >::~CallbackThread ( )
inlineoverride

Member Function Documentation

◆ Main()

template<typename Derived, typename TUserInfo, typename TListenerData, typename TNotifierData>
void wpi::util::CallbackThread< Derived, TUserInfo, TListenerData, TNotifierData >::Main ( )
overridevirtual

◆ SendPoller()

template<typename Derived, typename TUserInfo, typename TListenerData = CallbackListenerData<std::function<void(const TUserInfo& info)>>, typename TNotifierData = TUserInfo>
template<typename... Args>
void wpi::util::CallbackThread< Derived, TUserInfo, TListenerData, TNotifierData >::SendPoller ( unsigned int poller_uid,
Args &&... args )
inline

Member Data Documentation

◆ m_listeners

template<typename Derived, typename TUserInfo, typename TListenerData = CallbackListenerData<std::function<void(const TUserInfo& info)>>, typename TNotifierData = TUserInfo>
wpi::util::UidVector<ListenerData, 64> wpi::util::CallbackThread< Derived, TUserInfo, TListenerData, TNotifierData >::m_listeners

◆ m_on_exit

template<typename Derived, typename TUserInfo, typename TListenerData = CallbackListenerData<std::function<void(const TUserInfo& info)>>, typename TNotifierData = TUserInfo>
std::function<void()> wpi::util::CallbackThread< Derived, TUserInfo, TListenerData, TNotifierData >::m_on_exit

◆ m_on_start

template<typename Derived, typename TUserInfo, typename TListenerData = CallbackListenerData<std::function<void(const TUserInfo& info)>>, typename TNotifierData = TUserInfo>
std::function<void()> wpi::util::CallbackThread< Derived, TUserInfo, TListenerData, TNotifierData >::m_on_start

◆ m_pollers

template<typename Derived, typename TUserInfo, typename TListenerData = CallbackListenerData<std::function<void(const TUserInfo& info)>>, typename TNotifierData = TUserInfo>
wpi::util::UidVector<std::shared_ptr<Poller>, 64> wpi::util::CallbackThread< Derived, TUserInfo, TListenerData, TNotifierData >::m_pollers

◆ m_queue

template<typename Derived, typename TUserInfo, typename TListenerData = CallbackListenerData<std::function<void(const TUserInfo& info)>>, typename TNotifierData = TUserInfo>
std::queue<std::pair<unsigned int, NotifierData> > wpi::util::CallbackThread< Derived, TUserInfo, TListenerData, TNotifierData >::m_queue

◆ m_queue_empty

template<typename Derived, typename TUserInfo, typename TListenerData = CallbackListenerData<std::function<void(const TUserInfo& info)>>, typename TNotifierData = TUserInfo>
wpi::util::condition_variable wpi::util::CallbackThread< Derived, TUserInfo, TListenerData, TNotifierData >::m_queue_empty

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