OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
EventNotifier Class Reference

#include <event_notifier.h>

Collaboration diagram for EventNotifier:

Classes

struct  WorkQueueMessage
 

Public Types

typedef boost::function< bool(void)> Callback
 
typedef boost::shared_ptr
< EventNotifyKey
KeyPtr
 
typedef SmartPointerComparator
< EventNotifyKey,
boost::shared_ptr > 
Comparator
 
typedef std::vector
< EventNotifyHandle::Ptr
SubscribersList
 
typedef SubscribersList::iterator SubscribersListIter
 
typedef std::map< KeyPtr,
SubscribersList, Comparator
NotifyMap
 
typedef NotifyMap::iterator NotifyMapIter
 

Public Member Functions

 EventNotifier (Agent *agent)
 
virtual ~EventNotifier ()
 
void Notify (EventNotifyKey *key)
 
EventNotifyHandle::Ptr RegisterSubscriber (EventNotifyKey *key, Callback callback)
 
void DeregisterSubscriber (EventNotifyHandle::Ptr ptr)
 

Private Member Functions

bool Enqueue (WorkQueueMessage::Ptr data)
 
bool Process (WorkQueueMessage::Ptr data)
 
void NotifyInternal (KeyPtr key)
 
void RegisterSubscriberInternal (EventNotifyHandle::Ptr ptr)
 
void DeRegisterSubscriberInternal (EventNotifyHandle::Ptr ptr)
 
 DISALLOW_COPY_AND_ASSIGN (EventNotifier)
 

Private Attributes

NotifyMap map_
 
WorkQueue< WorkQueueMessage::Ptrwork_queue_
 
Agentagent_
 

Detailed Description

Definition at line 71 of file event_notifier.h.

Member Typedef Documentation

typedef boost::function<bool(void)> EventNotifier::Callback

Definition at line 74 of file event_notifier.h.

Definition at line 77 of file event_notifier.h.

typedef boost::shared_ptr<EventNotifyKey> EventNotifier::KeyPtr

Definition at line 76 of file event_notifier.h.

Definition at line 82 of file event_notifier.h.

typedef NotifyMap::iterator EventNotifier::NotifyMapIter

Definition at line 83 of file event_notifier.h.

Definition at line 79 of file event_notifier.h.

typedef SubscribersList::iterator EventNotifier::SubscribersListIter

Definition at line 80 of file event_notifier.h.

Constructor & Destructor Documentation

EventNotifier::EventNotifier ( Agent agent)

Definition at line 17 of file event_notifier.cc.

EventNotifier::~EventNotifier ( )
virtual

Definition at line 24 of file event_notifier.cc.

Member Function Documentation

void EventNotifier::DeregisterSubscriber ( EventNotifyHandle::Ptr  ptr)

Definition at line 81 of file event_notifier.cc.

void EventNotifier::DeRegisterSubscriberInternal ( EventNotifyHandle::Ptr  ptr)
private

Definition at line 88 of file event_notifier.cc.

EventNotifier::DISALLOW_COPY_AND_ASSIGN ( EventNotifier  )
private
bool EventNotifier::Enqueue ( WorkQueueMessage::Ptr  data)
private

Definition at line 29 of file event_notifier.cc.

void EventNotifier::Notify ( EventNotifyKey key)

Definition at line 45 of file event_notifier.cc.

void EventNotifier::NotifyInternal ( KeyPtr  key)
private

Definition at line 52 of file event_notifier.cc.

bool EventNotifier::Process ( WorkQueueMessage::Ptr  data)
private

Definition at line 34 of file event_notifier.cc.

Here is the call graph for this function:

EventNotifyHandle::Ptr EventNotifier::RegisterSubscriber ( EventNotifyKey key,
Callback  callback 
)

Definition at line 66 of file event_notifier.cc.

void EventNotifier::RegisterSubscriberInternal ( EventNotifyHandle::Ptr  ptr)
private

Definition at line 76 of file event_notifier.cc.

Member Data Documentation

Agent* EventNotifier::agent_
private

Definition at line 119 of file event_notifier.h.

NotifyMap EventNotifier::map_
private

Definition at line 117 of file event_notifier.h.

WorkQueue<WorkQueueMessage::Ptr> EventNotifier::work_queue_
private

Definition at line 118 of file event_notifier.h.


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