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

Specialization for a thread-safe GeneralObserver. More...

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

Inheritance diagram for GeneralObserver< SenderEventType, ReceiverEventType, ReceiverType, ReceiverOrBaseType, ReturnType, ThreadSafeObserver >:
[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 update (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, ThreadSafeObserver >

This specialization is meant for observers that can safely be called from any thread directly. The notification and receiving threads can be different and no thread synchronisation is necessary.

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

◆ update()

virtual void update ( const ObservableEvent e)
inlinevirtual

Reimplemented from Observer.