diff options
Diffstat (limited to 'include/svl')
-rw-r--r-- | include/svl/broadcast.hxx | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/include/svl/broadcast.hxx b/include/svl/broadcast.hxx index 80d9568b6392..6a6bc03c6fd6 100644 --- a/include/svl/broadcast.hxx +++ b/include/svl/broadcast.hxx @@ -21,7 +21,7 @@ #include <svl/svldllapi.h> -#include <boost/unordered_set.hpp> +#include <vector> class SvtListener; class SfxHint; @@ -31,11 +31,18 @@ class SVL_DLLPUBLIC SvtBroadcaster public: friend class SvtListener; - typedef boost::unordered_set<SvtListener*> ListenersType; + typedef std::vector<SvtListener*> ListenersType; private: const SvtBroadcaster& operator=(const SvtBroadcaster &); // verboten + /** + * Ensure that the container doesn't contain any duplicated listener + * entries. As a side effect, the listeners get sorted by pointer values + * after this call. + */ + void Normalize(); + void Add( SvtListener* p ); void Remove( SvtListener* p ); @@ -55,7 +62,8 @@ public: private: ListenersType maListeners; - bool mbDying; + bool mbDisposing:1; + bool mbNormalized:1; }; |