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

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

#include <interfacecontainer4.hxx>

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

Public Member Functions

 OInterfaceIteratorHelper4 (std::unique_lock< std::mutex > &, 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 comphelper::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 46 of file interfacecontainer4.hxx.

Constructor & Destructor Documentation

◆ OInterfaceIteratorHelper4() [1/2]

template<class ListenerT >
comphelper::OInterfaceIteratorHelper4< ListenerT >::OInterfaceIteratorHelper4 ( std::unique_lock< std::mutex > &  ,
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 63 of file interfacecontainer4.hxx.

References size.

◆ OInterfaceIteratorHelper4() [2/2]

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

Member Function Documentation

◆ hasMoreElements()

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

◆ next()

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

◆ operator=()

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

◆ remove()

template<class ListenerT >
void comphelper::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 107 of file interfacecontainer4.hxx.

References maData.

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

Member Data Documentation

◆ maData

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

Definition at line 92 of file interfacecontainer4.hxx.

◆ nRemain

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

◆ rCont

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

Definition at line 89 of file interfacecontainer4.hxx.


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