EventTypeSeq.h

Go to the documentation of this file.
00001 /* -*- C++ -*- */
00002 /**
00003  *  @file EventTypeSeq.h
00004  *
00005  *  $Id: EventTypeSeq.h 81418 2008-04-24 11:11:22Z johnnyw $
00006  *
00007  *  @author Pradeep Gore <pradeep@oomworks.com>
00008  *
00009  *
00010  */
00011 
00012 #ifndef TAO_Notify_EVENTTYPESEQ_H
00013 #define TAO_Notify_EVENTTYPESEQ_H
00014 #include /**/ "ace/pre.h"
00015 
00016 #include "orbsvcs/Notify/notify_serv_export.h"
00017 
00018 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00019 # pragma once
00020 #endif /* ACE_LACKS_PRAGMA_ONCE */
00021 
00022 #include "orbsvcs/Notify/EventType.h"
00023 #include "ace/Unbounded_Set.h"
00024 
00025 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00026 
00027 /**
00028  * @class TAO_Notify_EventTypeSeq
00029  *
00030  * @brief Allows operations using the CosNotification::EventTypeSeq type.
00031  *
00032  */
00033 class TAO_Notify_Serv_Export TAO_Notify_EventTypeSeq
00034   : public ACE_Unbounded_Set <TAO_Notify_EventType>
00035   , public TAO_Notify::Topology_Object
00036 {
00037  typedef ACE_Unbounded_Set <TAO_Notify_EventType> inherited;
00038 
00039 public:
00040   /// Constructor
00041   TAO_Notify_EventTypeSeq (void);
00042   TAO_Notify_EventTypeSeq (const CosNotification::EventTypeSeq& event_type_seq);
00043   TAO_Notify_EventTypeSeq (const TAO_Notify_EventTypeSeq & rhs);
00044   TAO_Notify_EventTypeSeq & operator = (const TAO_Notify_EventTypeSeq & rhs);
00045 
00046   /// Preprocess the types added and removed.
00047   void add_and_remove (TAO_Notify_EventTypeSeq& added, TAO_Notify_EventTypeSeq& removed);
00048 
00049   /// Populate this sequence with the intersection of rhs and lhs.
00050   void intersection (const TAO_Notify_EventTypeSeq& rhs, const TAO_Notify_EventTypeSeq& lhs);
00051 
00052   /// insert_seq the contents of <event_type_seq> into this object.
00053   void insert_seq (const CosNotification::EventTypeSeq& event_type_seq);
00054 
00055   /// remove_seq the contents of <event_type_seq> from this object.
00056   void remove_seq (const CosNotification::EventTypeSeq& event_type_seq);
00057 
00058   /// insert_seq the contents of <event_type_seq> into this object.
00059   void insert_seq (const TAO_Notify_EventTypeSeq& event_type_seq);
00060 
00061   /// remove_seq the contents of <event_type_seq> from this object.
00062   void remove_seq (const TAO_Notify_EventTypeSeq& event_type_seq);
00063 
00064   /// Populate <event_type_seq> with the contents of this object.
00065   void populate (CosNotification::EventTypeSeq& event_type) const;
00066 
00067   /// Populate <event_type_seq> with the contents of this object.
00068   /// Excludes the special event type. This is used to avoid sending * type updates to proxys.
00069   void populate_no_special (CosNotification::EventTypeSeq& event_type) const;
00070 
00071   /// Print the contents.
00072   void dump (void) const;
00073 
00074   // TAO_Notify::Topology_Object
00075 
00076   virtual void save_persistent (TAO_Notify::Topology_Saver& saver);
00077   virtual TAO_Notify::Topology_Object* load_child (const ACE_CString &type, CORBA::Long id,
00078     const TAO_Notify::NVPList& attrs);
00079 
00080 private:
00081 
00082   virtual void release (void);
00083 };
00084 
00085 TAO_END_VERSIONED_NAMESPACE_DECL
00086 
00087 #include /**/ "ace/post.h"
00088 #endif /* TAO_Notify_EVENTTYPESEQ_H */

Generated on Tue Feb 2 17:45:29 2010 for TAO_CosNotification by  doxygen 1.4.7