Main Page Namespace List Class Hierarchy Alphabetical List Compound List File List Namespace Members Compound Members File Members

# TAO_Notify_Event_Map Class Reference

TAO_Notify_Event_Map. More...

`#include <Notify_Event_Map.h>`

Collaboration diagram for TAO_Notify_Event_Map:

[legend]
List of all members.

## Public Methods
| TAO_Notify_Event_Map (TAO_Notify_EMO_Factory *emo_factory)
| Constructor. More...
virtual | ~TAO_Notify_Event_Map ()
| Destructor. More...
void | init (ACE_ENV_SINGLE_ARG_DECL)
| Init. More...
void | shutdown (ACE_ENV_SINGLE_ARG_DECL)
| Shutdown releases all listeners. More...
void | subscribe_for_events (TAO_Notify_EventListener *event_listener, TAO_Notify_EventType_List &update, const CosNotification::EventTypeSeq &added ACE_ENV_ARG_DECL)
void | unsubscribe_from_events (TAO_Notify_EventListener *event_listener, TAO_Notify_EventType_List &update, const CosNotification::EventTypeSeq &removed ACE_ENV_ARG_DECL)
void | update_publication_list (const CosNotification::EventTypeSeq &added, const CosNotification::EventTypeSeq &removed, TAO_Notify_EventType_List &added_list, TAO_Notify_EventType_List &removed_list ACE_ENV_ARG_DECL)
void | register_for_subscription_updates (TAO_Notify_UpdateListener *update_listener ACE_ENV_ARG_DECL)
| Registers the subscription update listener with the Event Manager. More...
void | unregister_from_subscription_updates (TAO_Notify_UpdateListener *update_listener ACE_ENV_ARG_DECL)
| Unregister from subscription updates. More...
void | register_for_publication_updates (TAO_Notify_UpdateListener *update_listener ACE_ENV_ARG_DECL)
| Registers the publication update listener with the Event Manager. More...
void | unregister_from_publication_updates (TAO_Notify_UpdateListener *update_listener ACE_ENV_ARG_DECL)
| Unregister from publication updates. More...
int | find (TAO_Notify_EventType const &event_type, TAO_Notify_EventListener_List *&event_listener_list)
CosNotification::EventTypeSeq * | obtain_offered_types (void)
| Obtain the publication list. More...
CosNotification::EventTypeSeq * | obtain_subscription_types (void)
| Obtain the subscription list. More...
TAO_Notify_UpdateListener_List * | subscription_change_listeners (void)
TAO_Notify_UpdateListener_List * | publication_change_listeners (void)
TAO_Notify_EventListener_List * | default_subscription_list (void)
## Protected Types
typedef ACE_Hash_Map_Manager< TAO_Notify_EventType, TAO_Notify_EventListener_List *, TAO_SYNCH_MUTEX > | EVENT_RECIPIENT_MAP
## Protected Attributes
EVENT_RECIPIENT_MAP | event_recipient_map_
| A Map of event types and the groups of event listeners interested in them. More...
TAO_Notify_EventListener_List * | default_subscription_list_
| Save a reference to the default list, we don't want to spend time looking for it in the <event_recipient_map>. More...
TAO_Notify_EventType_List | publication_list_
| The list of event types that are being currently published by suppliers. More...
TAO_Notify_EventType_List | subscription_list_
| The list of event types that are being currently subscribed to by consumers. More...
TAO_Notify_UpdateListener_List * | subscription_change_listeners_
| This is a list of listeners that want to be notified if the subsciptions from consumers changes the <event_recipient_map_> keys. More...
TAO_Notify_UpdateListener_List * | publication_change_listeners_
| This is a list of listeners that want to be notified if the publications from suppliers changes the <publication_list_>. More...
TAO_Notify_EMO_Factory * | emo_factory_
| Evenet Manager Objects factory. More...
TAO_Notify_Collection_Factory * | collection_factory_
| Collection objects factory. More...

## Detailed Description

TAO_Notify_Event_Map.

This is a compound container consisting of:

- A "recipient" map : mapping between an event and its subscriibers
- Lists of current events being subscribed, published.
- Lists of subscriptions, publications update listeners.

## Member Typedef Documentation

typedef ACE_Hash_Map_Manager<TAO_Notify_EventType, TAO_Notify_EventListener_List*, TAO_SYNCH_MUTEX> TAO_Notify_Event_Map::EVENT_RECIPIENT_MAP`[protected]`

## Constructor & Destructor Documentation

TAO_Notify_Event_Map::TAO_Notify_Event_Map | ( | TAO_Notify_EMO_Factory * | emo_factory | ) |

| Constructor.

TAO_Notify_Event_Map::~TAO_Notify_Event_Map | ( |  | ) | `[virtual]`

| Destructor.

## Member Function Documentation

TAO_Notify_EventListener_List* TAO_Notify_Event_Map::default_subscription_list | ( | void |  | ) |

int TAO_Notify_Event_Map::find | ( | TAO_Notify_EventType const & | event_type,
|  | TAO_Notify_EventListener_List *& | event_listener_list
| ) |

void TAO_Notify_Event_Map::init | ( | ACE_ENV_SINGLE_ARG_DECL |  | ) |

| Init.

CosNotification::EventTypeSeq * TAO_Notify_Event_Map::obtain_offered_types | ( | void |  | ) |

| Obtain the publication list.

CosNotification::EventTypeSeq * TAO_Notify_Event_Map::obtain_subscription_types | ( | void |  | ) |

| Obtain the subscription list.

TAO_Notify_UpdateListener_List* TAO_Notify_Event_Map::publication_change_listeners | ( | void |  | ) |

void TAO_Notify_Event_Map::register_for_publication_updates | ( | TAO_Notify_UpdateListener *update_listener | ACE_ENV_ARG_DECL | ) |

| Registers the publication update listener with the Event Manager.

void TAO_Notify_Event_Map::register_for_subscription_updates | ( | TAO_Notify_UpdateListener *update_listener | ACE_ENV_ARG_DECL | ) |

| Registers the subscription update listener with the Event Manager.

void TAO_Notify_Event_Map::shutdown | ( | ACE_ENV_SINGLE_ARG_DECL |  | ) |

| Shutdown releases all listeners.

void TAO_Notify_Event_Map::subscribe_for_events | ( | TAO_Notify_EventListener * | event_listener,
|  | TAO_Notify_EventType_List & | update,
|  | const CosNotification::EventTypeSeq &added | ACE_ENV_ARG_DECL
| ) |

TAO_Notify_UpdateListener_List* TAO_Notify_Event_Map::subscription_change_listeners | ( | void |  | ) |

void TAO_Notify_Event_Map::unregister_from_publication_updates | ( | TAO_Notify_UpdateListener *update_listener | ACE_ENV_ARG_DECL | ) |

| Unregister from publication updates.

void TAO_Notify_Event_Map::unregister_from_subscription_updates | ( | TAO_Notify_UpdateListener *update_listener | ACE_ENV_ARG_DECL | ) |

| Unregister from subscription updates.

void TAO_Notify_Event_Map::unsubscribe_from_events | ( | TAO_Notify_EventListener * | event_listener,
|  | TAO_Notify_EventType_List & | update,
|  | const CosNotification::EventTypeSeq &removed | ACE_ENV_ARG_DECL
| ) |

void TAO_Notify_Event_Map::update_publication_list | ( | const CosNotification::EventTypeSeq & | added,
|  | const CosNotification::EventTypeSeq & | removed,
|  | TAO_Notify_EventType_List & | added_list,
|  | TAO_Notify_EventType_List &removed_list | ACE_ENV_ARG_DECL_NOT_USED
| ) |

## Member Data Documentation

TAO_Notify_Collection_Factory* TAO_Notify_Event_Map::collection_factory_`[protected]`

| Collection objects factory.

TAO_Notify_EventListener_List* TAO_Notify_Event_Map::default_subscription_list_`[protected]`

| Save a reference to the default list, we don't want to spend time looking for it in the <event_recipient_map>.

TAO_Notify_EMO_Factory* TAO_Notify_Event_Map::emo_factory_`[protected]`

| Evenet Manager Objects factory.

EVENT_RECIPIENT_MAP TAO_Notify_Event_Map::event_recipient_map_`[protected]`

| A Map of event types and the groups of event listeners interested in them. The keys of the map are a list of events that consumers have currently subscribed for.

TAO_Notify_UpdateListener_List* TAO_Notify_Event_Map::publication_change_listeners_`[protected]`

| This is a list of listeners that want to be notified if the publications from suppliers changes the <publication_list_>.

TAO_Notify_EventType_List TAO_Notify_Event_Map::publication_list_`[protected]`

| The list of event types that are being currently published by suppliers.

TAO_Notify_UpdateListener_List* TAO_Notify_Event_Map::subscription_change_listeners_`[protected]`

| This is a list of listeners that want to be notified if the subsciptions from consumers changes the <event_recipient_map_> keys.

TAO_Notify_EventType_List TAO_Notify_Event_Map::subscription_list_`[protected]`

| The list of event types that are being currently subscribed to by consumers. This list is the same as the list of keys in the <event_recepient_map>. We keep a copy of that list here to reduce contention for the map which will be accessed for every event that enters the system.

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

- Notify_Event_Map.h
- Notify_Event_Map.cpp