00001
00002
00003
00004
00005
00006
00007
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
00021
00022 #include "orbsvcs/Notify/EventType.h"
00023 #include "ace/Unbounded_Set.h"
00024
00025 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00026
00027
00028
00029
00030
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
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
00047 void add_and_remove (TAO_Notify_EventTypeSeq& added, TAO_Notify_EventTypeSeq& removed);
00048
00049
00050 void intersection (const TAO_Notify_EventTypeSeq& rhs, const TAO_Notify_EventTypeSeq& lhs);
00051
00052
00053 void insert_seq (const CosNotification::EventTypeSeq& event_type_seq);
00054
00055
00056 void remove_seq (const CosNotification::EventTypeSeq& event_type_seq);
00057
00058
00059 void insert_seq (const TAO_Notify_EventTypeSeq& event_type_seq);
00060
00061
00062 void remove_seq (const TAO_Notify_EventTypeSeq& event_type_seq);
00063
00064
00065 void populate (CosNotification::EventTypeSeq& event_type) const;
00066
00067
00068
00069 void populate_no_special (CosNotification::EventTypeSeq& event_type) const;
00070
00071
00072 void dump (void) const;
00073
00074
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