/* -*- C++ -*- */ // $Id$ // ============================================================================ // // = LIBRARY // EventComm // // = FILENAME // Notifier_i.h // // = DESCRIPTION // Class interface for the implementation of the // // = AUTHOR // Douglas C. Schmidt (schmidt@cs.wustl.edu) // // ============================================================================ #ifndef _Notifier_i_H #define _Notifier_i_H #include "ace/Map_Manager.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ #include "ace/Synch.h" #include "ace/SString.h" #include "Event_Comm.hh" #if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0) // Forward reference. class Notification_Receiver_Entry; class Notifier_i { // = TITLE // Defines the implementation class for event . public: enum { DEFAULT_SIZE = 1024 // Default max number of Event_Comm::Notification_Receivers. }; Notifier_i (size_t size_hint = Notifier_i::DEFAULT_SIZE); // Initialize a Notifier_i object with the specified size hint. void send_disconnect (const char *reason, CORBA::Environment &IT_env); // Disconnect all the receivers, giving them the . void send_notification (const Event_Comm::Notification ¬ification, CORBA::Environment &IT_env); // Send the to all the consumers who have subscribed // and who match the filtering criteria. void subscribe (Event_Comm::Notification_Receiver *notification_receiver, const char *filtering_criteria, CORBA::Environment &IT_env); // Subscribe the to receive events that // match applied by the . void unsubscribe (Event_Comm::Notification_Receiver *notification_receiver, const char *filtering_criteria, CORBA::Environment &IT_env); // Unsubscribe the . private: // The following implementation should be replaced // by a standard container class from STL... typedef ACE_Map_Manager MAP_MANAGER; typedef ACE_Map_Iterator MAP_ITERATOR; typedef ACE_Map_Entry MAP_ENTRY; MAP_MANAGER map_; // Table that maps a to a // . }; #endif /* ACE_HAS_ORBIX */ #endif /* _Notifier_i_H */