LibreOffice Module cppuhelper (master) 1
Public Member Functions | Private Member Functions | Private Attributes | List of all members
cppuhelper::OInterfaceIteratorHelper4< ListenerT > Class Template Reference

This is the iterator of an OInterfaceContainerHelper4. More...

#include <interfacecontainer4.hxx>

Collaboration diagram for cppuhelper::OInterfaceIteratorHelper4< ListenerT >:
[legend]

Public Member Functions

 OInterfaceIteratorHelper4 (std::unique_lock< std::mutex > &rGuard, OInterfaceContainerHelper4< ListenerT > &rCont_)
 Create an iterator over the elements of the container. More...
 
bool hasMoreElements () const
 Return true, if there are more elements in the iterator. More...
 
css::uno::Reference< ListenerT > const & next ()
 Return the next element of the iterator. More...
 
void remove (::std::unique_lock<::std::mutex > &rGuard)
 Removes the current element (the last one returned by next()) from the underlying container. More...
 

Private Member Functions

 OInterfaceIteratorHelper4 (const OInterfaceIteratorHelper4 &)=delete
 
OInterfaceIteratorHelper4operator= (const OInterfaceIteratorHelper4 &)=delete
 

Private Attributes

OInterfaceContainerHelper4< ListenerT > & rCont
 
o3tl::cow_wrapper< std::vector< css::uno::Reference< ListenerT > >, o3tl::ThreadSafeRefCountingPolicymaData
 
sal_Int32 nRemain
 

Detailed Description

template<class ListenerT>
class cppuhelper::OInterfaceIteratorHelper4< ListenerT >

This is the iterator of an OInterfaceContainerHelper4.

Typically one constructs an instance on the stack for one firing session. It is not allowed to assign or copy an instance of this class.

Template Parameters
ListenerTUNO event listener type
See also
OInterfaceContainerHelper4

Definition at line 51 of file interfacecontainer4.hxx.

Constructor & Destructor Documentation

◆ OInterfaceIteratorHelper4() [1/2]

template<class ListenerT >
cppuhelper::OInterfaceIteratorHelper4< ListenerT >::OInterfaceIteratorHelper4 ( std::unique_lock< std::mutex > &  rGuard,
OInterfaceContainerHelper4< ListenerT > &  rCont_ 
)
inline

Create an iterator over the elements of the container.

The iterator copies the elements of the container. A change to the container during the lifetime of an iterator is allowed and does not affect the iterator-instance. The iterator and the container take cares themself for concurrent access, no additional guarding is necessary.

Remark: The copy is on demand. The iterator copy the elements only if the container change the contents...

Parameters
rContthe container of the elements.
rGuardthis parameter only here to make that this container is accessed while locked

Definition at line 68 of file interfacecontainer4.hxx.

References size.

◆ OInterfaceIteratorHelper4() [2/2]

template<class ListenerT >
cppuhelper::OInterfaceIteratorHelper4< ListenerT >::OInterfaceIteratorHelper4 ( const OInterfaceIteratorHelper4< ListenerT > &  )
privatedelete

Member Function Documentation

◆ hasMoreElements()

template<class ListenerT >
bool cppuhelper::OInterfaceIteratorHelper4< ListenerT >::hasMoreElements ( ) const
inline

Return true, if there are more elements in the iterator.

Definition at line 80 of file interfacecontainer4.hxx.

References cppuhelper::OInterfaceIteratorHelper4< ListenerT >::nRemain.

Referenced by cppuhelper::OInterfaceContainerHelper4< ListenerT >::forEach().

◆ next()

template<class ListenerT >
const css::uno::Reference< ListenerT > & cppuhelper::OInterfaceIteratorHelper4< ListenerT >::next

Return the next element of the iterator.

Calling this method if hasMoreElements() has returned false, is an error.

Definition at line 107 of file interfacecontainer4.hxx.

References maData.

Referenced by cppuhelper::OInterfaceContainerHelper4< ListenerT >::forEach().

◆ operator=()

template<class ListenerT >
OInterfaceIteratorHelper4 & cppuhelper::OInterfaceIteratorHelper4< ListenerT >::operator= ( const OInterfaceIteratorHelper4< ListenerT > &  )
privatedelete

◆ remove()

template<class ListenerT >
void cppuhelper::OInterfaceIteratorHelper4< ListenerT >::remove ( ::std::unique_lock<::std::mutex > &  rGuard)

Removes the current element (the last one returned by next()) from the underlying container.

Calling this method before next() has been called or calling it twice with no next() in between is an error.

Parameters
rGuardthis parameter only here to make that this container is accessed while locked

Definition at line 114 of file interfacecontainer4.hxx.

References maData.

Referenced by cppuhelper::OInterfaceContainerHelper4< ListenerT >::forEach().

Member Data Documentation

◆ maData

template<class ListenerT >
o3tl::cow_wrapper<std::vector<css::uno::Reference<ListenerT> >, o3tl::ThreadSafeRefCountingPolicy> cppuhelper::OInterfaceIteratorHelper4< ListenerT >::maData
private

Definition at line 99 of file interfacecontainer4.hxx.

◆ nRemain

template<class ListenerT >
sal_Int32 cppuhelper::OInterfaceIteratorHelper4< ListenerT >::nRemain
private

◆ rCont

template<class ListenerT >
OInterfaceContainerHelper4<ListenerT>& cppuhelper::OInterfaceIteratorHelper4< ListenerT >::rCont
private

Definition at line 96 of file interfacecontainer4.hxx.


The documentation for this class was generated from the following file: