Workspace 6.21.5
Public Types | Public Member Functions | List of all members
GeneralObserver< SenderEventType, ReceiverEventType, ReceiverType, ReceiverOrBaseType, ReturnType, ThreadedObserver > Class Template Reference

Specialization for a threaded GeneralObserver. More...

#include <Workspace/DataExecution/Events/generalobserver.h>

Inheritance diagram for GeneralObserver< SenderEventType, ReceiverEventType, ReceiverType, ReceiverOrBaseType, ReturnType, ThreadedObserver >:
[legend]

Public Types

using MemberFunc = typename DataExecutionPrivate::EventProcessor< SenderEventType, ReceiverEventType, ReceiverType, ReceiverOrBaseType, ReturnType >::MemberFunc
 
- Public Types inherited from ObserverType< SenderEventType, ReceiverEventType, ReceiverType, ReceiverOrBaseType, ReturnType >
using MemberFunc = typename Processor::MemberFunc
 
using Processor = DataExecutionPrivate::EventProcessor< SenderEventType, ReceiverEventType, ReceiverType, ReceiverOrBaseType, ReturnType >
 

Public Member Functions

 GeneralObserver (Observable &sender, const EventIDSingleton< SenderEventType > &eventId, ReceiverType &receiver, MemberFunc func)
 
virtual void updateInObserverThread (const ObservableEvent &e)
 
- Public Member Functions inherited from Observer
void destroy ()
 
const EventIDgetEventID () const
 
void moveToThread (QThread *thread)
 
virtual void update (const ObservableEvent &event)
 

Additional Inherited Members

- Protected Member Functions inherited from ObserverType< SenderEventType, ReceiverEventType, ReceiverType, ReceiverOrBaseType, ReturnType >
 ObserverType (Observable &sender, const EventIDSingleton< SenderEventType > &eventId, ReceiverType &receiver, typename Processor::MemberFunc func)
 
void processEvent (const ObservableEvent &e)
 
- Protected Member Functions inherited from Observer
 Observer (const Observer &)
 
 Observer (Observable &subject, const EventID &eventID, bool ownedBySubject=false, bool attach=true)
 
virtual ~Observer ()
 
bool isOwnedBySubject () const
 
void setOwnedBySubject (bool ownedBySubject) const
 
virtual bool updateInNotificationThread (const ObservableEvent &event)
 
virtual void updateInObserverThread (const ObservableEvent &event)
 

Detailed Description

template<typename SenderEventType, typename ReceiverEventType, typename ReceiverType, typename ReceiverOrBaseType, typename ReturnType>
class CSIRO::DataExecution::GeneralObserver< SenderEventType, ReceiverEventType, ReceiverType, ReceiverOrBaseType, ReturnType, ThreadedObserver >

This specialization is meant for observers that require synchronisation between the notifying and receiving threads. The notifying thread will block until the receiving thread handles the notification and returns.

Member Typedef Documentation

◆ MemberFunc

using MemberFunc = typename DataExecutionPrivate::EventProcessor<SenderEventType, ReceiverEventType, ReceiverType, ReceiverOrBaseType, ReturnType>::MemberFunc

Constructor & Destructor Documentation

◆ GeneralObserver()

GeneralObserver ( Observable sender,
const EventIDSingleton< SenderEventType > &  eventId,
ReceiverType &  receiver,
MemberFunc  func 
)
inline

Member Function Documentation

◆ updateInObserverThread()

virtual void updateInObserverThread ( const ObservableEvent e)
inlinevirtual

Reimplemented from Observer.