UDK 3.2.7 C/C++ API Reference
Classes | Public Member Functions | Static Public Member Functions | Friends
cppu::OInterfaceContainerHelper Class Reference

A container of interfaces. More...

#include <interfacecontainer.h>

List of all members.

Classes

class  NotifySingleListener

Public Member Functions

 OInterfaceContainerHelper (::osl::Mutex &rMutex) throw ()
 Create an interface container.
 ~OInterfaceContainerHelper () throw ()
 Release all interfaces.
sal_Int32 getLength () const throw ()
 Return the number of Elements in the container.
::com::sun::star::uno::Sequence
< ::com::sun::star::uno::Reference
< ::com::sun::star::uno::XInterface > > 
getElements () const throw ()
 Return all interfaces added to this container.
sal_Int32 addInterface (const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > &rxIFace) throw ()
 Inserts an element into the container.
sal_Int32 removeInterface (const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > &rxIFace) throw ()
 Removes an element from the container.
void disposeAndClear (const ::com::sun::star::lang::EventObject &rEvt) throw ()
 Call disposing on all object in the container that support XEventListener.
void clear () throw ()
 Clears the container without calling disposing().
template<typename ListenerT , typename FuncT >
void forEach (FuncT const &func)
 Executes a functor for each contained listener of specified type, e.g.
template<typename ListenerT , typename EventT >
void notifyEach (void(ListenerT::*NotificationMethod)(const EventT &), const EventT &Event)
 Calls a UNO listener method for each contained listener.

Static Public Member Functions

static void * operator new (size_t nSize) throw ()
static void operator delete (void *pMem) throw ()
static void * operator new (size_t, void *pMem) throw ()
static void operator delete (void *, void *) throw ()

Friends

class OInterfaceIteratorHelper

Detailed Description

A container of interfaces.

To access the elements use an iterator. This implementation is thread save.

See also:
OInterfaceIteratorHelper

Constructor & Destructor Documentation

cppu::OInterfaceContainerHelper::OInterfaceContainerHelper ( ::osl::Mutex rMutex) throw ()

Create an interface container.

Parameters:
rMutexthe mutex to protect multi thread access. The lifetime must be longer than the lifetime of this object.
cppu::OInterfaceContainerHelper::~OInterfaceContainerHelper ( ) throw ()

Release all interfaces.

All iterators must be destroyed before the container is destructed.


Member Function Documentation

sal_Int32 cppu::OInterfaceContainerHelper::addInterface ( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > &  rxIFace) throw ()

Inserts an element into the container.

The position is not specified, thus it is not specified in which order events are fired.

Attention:
If you add the same interface more than once, then it will be added to the elements list more than once and thus if you want to remove that interface from the list, you have to call removeInterface() the same number of times. In the latter case, you will also get events fired more than once (if the interface is a listener interface).
Parameters:
rxIFaceinterface to be added; it is allowed to insert null or the same interface more than once
Returns:
the new count of elements in the container
void cppu::OInterfaceContainerHelper::clear ( ) throw ()

Clears the container without calling disposing().

void cppu::OInterfaceContainerHelper::disposeAndClear ( const ::com::sun::star::lang::EventObject &  rEvt) throw ()

Call disposing on all object in the container that support XEventListener.

Than clear the container.

template<typename ListenerT , typename FuncT >
void cppu::OInterfaceContainerHelper::forEach ( FuncT const &  func) [inline]

Executes a functor for each contained listener of specified type, e.g.

forEach<awt::XPaintListener>(....

If a com::sun::star::lang::DisposedException occurs which relates to the called listener, then that listener is removed from the container.

Template Parameters:
ListenerTlistener type
FuncTunary functor type, let your compiler deduce this for you
Parameters:
funcunary functor object expecting an argument of type ::com::sun::star::uno::Reference<ListenerT>
::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > > cppu::OInterfaceContainerHelper::getElements ( ) const throw ()

Return all interfaces added to this container.

sal_Int32 cppu::OInterfaceContainerHelper::getLength ( ) const throw ()

Return the number of Elements in the container.

Only useful if you have acquired the mutex.

template<typename ListenerT , typename EventT >
void cppu::OInterfaceContainerHelper::notifyEach ( void(ListenerT::*)(const EventT &)  NotificationMethod,
const EventT &  Event 
) [inline]

Calls a UNO listener method for each contained listener.

The listener method must take a single argument of type EventT, and return void.

If a com::sun::star::lang::DisposedException occurs which relates to the called listener, then that listener is removed from the container.

Template Parameters:
ListenerTUNO event listener type, let your compiler deduce this for you
EventTevent type, let your compiler deduce this for you
Parameters:
NotificationMethodPointer to a method of a ListenerT interface.
EventEvent to notify to all contained listeners

Example:

    awt::PaintEvent aEvent( static_cast< cppu::OWeakObject* >( this ), ... );
    listeners.notifyEach( &XPaintListener::windowPaint, aEvent );
static void cppu::OInterfaceContainerHelper::operator delete ( void *  pMem) throw () [inline, static]
static void cppu::OInterfaceContainerHelper::operator delete ( void *  ,
void *   
) throw () [inline, static]
static void* cppu::OInterfaceContainerHelper::operator new ( size_t  ,
void *  pMem 
) throw () [inline, static]
static void* cppu::OInterfaceContainerHelper::operator new ( size_t  nSize) throw () [inline, static]
sal_Int32 cppu::OInterfaceContainerHelper::removeInterface ( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > &  rxIFace) throw ()

Removes an element from the container.

It uses interface equality to remove the interface.

Parameters:
rxIFaceinterface to be removed
Returns:
the new count of elements in the container

Friends And Related Function Documentation

friend class OInterfaceIteratorHelper [friend]

The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines