Main Page | Modules | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members

ark::Notifier< Notification, Observer_t, Observed_t > Class Template Reference

#include <Notifier.h>

Inheritance diagram for ark::Notifier< Notification, Observer_t, Observed_t >:

ark::AsyncNotifier< Notification, Observer_t, Observed_t > List of all members.

Public Member Functions

virtual void receiveNotification (Notification const &note)
virtual void addObserver (boost::shared_ptr< Observer_t > const &obj)
virtual void addObserver (boost::shared_ptr< Observer_t > const &obj, Observed_t const &obs)
virtual void addObserver (boost::shared_ptr< Observer_t > const &obj, Notification const &note)
virtual void removeObserver (boost::shared_ptr< Observer_t > &obj)
virtual void removeObserver (boost::shared_ptr< Observer_t > &obj, Observed_t const &observed)
virtual void removeObserver (boost::shared_ptr< Observer_t > &obj, Notification const &note)
bool isObserving (boost::shared_ptr< Observer_t > const &obj)

Private Types

typedef std::set< ObserverInfoObserverList
typedef Loki::AssocVector<
Observed_t const *, ObserverList
ObserverObjectMap
typedef Loki::AssocVector<
typename Notification::Tag,
ObserverList
ObserverNotificationMap

Private Member Functions

void _notifyObserver (ObserverInfo &info, Notification const &note)
void _dispatchToObserver (Notification const &note, typename ObserverList::iterator i, ObserverList &list)

Private Attributes

ObserverList _observeAll
ObserverObjectMap _observeObject
ObserverNotificationMap _observeNotification

Classes

struct  ObserverInfo
 Observer class is comparible for easy finding of registered observers. More...

Detailed Description

template<class Notification, class Observer_t, class Observed_t>
class ark::Notifier< Notification, Observer_t, Observed_t >

Notifier This class keeps track of Observer objects association to Observed objects and notification types, and notifies registered observers synchronously concerning said objects or notifications.


Member Typedef Documentation

template<class Notification, class Observer_t, class Observed_t>
typedef std::set<ObserverInfo> ark::Notifier< Notification, Observer_t, Observed_t >::ObserverList [private]
 

template<class Notification, class Observer_t, class Observed_t>
typedef Loki::AssocVector<typename Notification::Tag, ObserverList> ark::Notifier< Notification, Observer_t, Observed_t >::ObserverNotificationMap [private]
 

template<class Notification, class Observer_t, class Observed_t>
typedef Loki::AssocVector<Observed_t const*, ObserverList> ark::Notifier< Notification, Observer_t, Observed_t >::ObserverObjectMap [private]
 


Member Function Documentation

template<class Notification, class Observer_t, class Observed_t>
void ark::Notifier< Notification, Observer_t, Observed_t >::_dispatchToObserver Notification const &  note,
typename ObserverList::iterator  i,
ObserverList list
[inline, private]
 

template<class Notification, class Observer_t, class Observed_t>
void ark::Notifier< Notification, Observer_t, Observed_t >::_notifyObserver ObserverInfo info,
Notification const &  note
[inline, private]
 

template<class Notification, class Observer_t, class Observed_t>
virtual void ark::Notifier< Notification, Observer_t, Observed_t >::addObserver boost::shared_ptr< Observer_t > const &  obj,
Notification const &  note
[inline, virtual]
 

Reimplemented in ark::AsyncNotifier< Notification, Observer_t, Observed_t >.

template<class Notification, class Observer_t, class Observed_t>
virtual void ark::Notifier< Notification, Observer_t, Observed_t >::addObserver boost::shared_ptr< Observer_t > const &  obj,
Observed_t const &  obs
[inline, virtual]
 

Reimplemented in ark::AsyncNotifier< Notification, Observer_t, Observed_t >.

template<class Notification, class Observer_t, class Observed_t>
virtual void ark::Notifier< Notification, Observer_t, Observed_t >::addObserver boost::shared_ptr< Observer_t > const &  obj  )  [inline, virtual]
 

Reimplemented in ark::AsyncNotifier< Notification, Observer_t, Observed_t >.

template<class Notification, class Observer_t, class Observed_t>
bool ark::Notifier< Notification, Observer_t, Observed_t >::isObserving boost::shared_ptr< Observer_t > const &  obj  )  [inline]
 

isObserving

Returns:
True if the passed object is registered with this notifier

Reimplemented in ark::AsyncNotifier< Notification, Observer_t, Observed_t >.

template<class Notification, class Observer_t, class Observed_t>
virtual void ark::Notifier< Notification, Observer_t, Observed_t >::receiveNotification Notification const &  note  )  [inline, virtual]
 

receiveNotification Override of Observer_t function sends the notification to all registered observers.

Parameters:
note The notification to send

Reimplemented in ark::AsyncNotifier< Notification, Observer_t, Observed_t >.

template<class Notification, class Observer_t, class Observed_t>
virtual void ark::Notifier< Notification, Observer_t, Observed_t >::removeObserver boost::shared_ptr< Observer_t > &  obj,
Notification const &  note
[inline, virtual]
 

Reimplemented in ark::AsyncNotifier< Notification, Observer_t, Observed_t >.

template<class Notification, class Observer_t, class Observed_t>
virtual void ark::Notifier< Notification, Observer_t, Observed_t >::removeObserver boost::shared_ptr< Observer_t > &  obj,
Observed_t const &  observed
[inline, virtual]
 

Reimplemented in ark::AsyncNotifier< Notification, Observer_t, Observed_t >.

template<class Notification, class Observer_t, class Observed_t>
virtual void ark::Notifier< Notification, Observer_t, Observed_t >::removeObserver boost::shared_ptr< Observer_t > &  obj  )  [inline, virtual]
 

removeObserver

Reimplemented in ark::AsyncNotifier< Notification, Observer_t, Observed_t >.


Member Data Documentation

template<class Notification, class Observer_t, class Observed_t>
ObserverList ark::Notifier< Notification, Observer_t, Observed_t >::_observeAll [private]
 

template<class Notification, class Observer_t, class Observed_t>
ObserverNotificationMap ark::Notifier< Notification, Observer_t, Observed_t >::_observeNotification [private]
 

template<class Notification, class Observer_t, class Observed_t>
ObserverObjectMap ark::Notifier< Notification, Observer_t, Observed_t >::_observeObject [private]
 


The documentation for this class was generated from the following file:
Generated on Tue Sep 6 14:54:41 2005 for Arkonnekt Sound by  doxygen 1.4.4