LibreOffice
LibreOffice 4.3 SDK C/C++ API Reference
Public Member Functions | Protected Attributes | List of all members
cppu::OWeakAggObject Class Reference

Base class to implement an UNO object supporting weak references, i.e. More...

#include <weakagg.hxx>

Inheritance diagram for cppu::OWeakAggObject:
cppu::OWeakObject cppu::OComponentHelper cppu::WeakAggImplHelper1< Ifc1 > cppu::WeakAggImplHelper10< Ifc1, Ifc2, Ifc3, Ifc4, Ifc5, Ifc6, Ifc7, Ifc8, Ifc9, Ifc10 > cppu::WeakAggImplHelper11< Ifc1, Ifc2, Ifc3, Ifc4, Ifc5, Ifc6, Ifc7, Ifc8, Ifc9, Ifc10, Ifc11 > cppu::WeakAggImplHelper12< Ifc1, Ifc2, Ifc3, Ifc4, Ifc5, Ifc6, Ifc7, Ifc8, Ifc9, Ifc10, Ifc11, Ifc12 > cppu::WeakAggImplHelper13< Ifc1, Ifc2, Ifc3, Ifc4, Ifc5, Ifc6, Ifc7, Ifc8, Ifc9, Ifc10, Ifc11, Ifc12, Ifc13 > cppu::WeakAggImplHelper2< Ifc1, Ifc2 > cppu::WeakAggImplHelper3< Ifc1, Ifc2, Ifc3 > cppu::WeakAggImplHelper4< Ifc1, Ifc2, Ifc3, Ifc4 > cppu::WeakAggImplHelper5< Ifc1, Ifc2, Ifc3, Ifc4, Ifc5 > cppu::WeakAggImplHelper6< Ifc1, Ifc2, Ifc3, Ifc4, Ifc5, Ifc6 > cppu::WeakAggImplHelper7< Ifc1, Ifc2, Ifc3, Ifc4, Ifc5, Ifc6, Ifc7 > cppu::WeakAggImplHelper8< Ifc1, Ifc2, Ifc3, Ifc4, Ifc5, Ifc6, Ifc7, Ifc8 > cppu::WeakAggImplHelper9< Ifc1, Ifc2, Ifc3, Ifc4, Ifc5, Ifc6, Ifc7, Ifc8, Ifc9 >

Public Member Functions

 OWeakAggObject () SAL_THROW(())
 Constructor. More...
 
virtual void acquire () SAL_OVERRIDE throw ()
 If a delegator is set, then the delegators gets acquired. More...
 
virtual void release () SAL_OVERRIDE throw ()
 If a delegator is set, then the delegators gets released. More...
 
virtual ::com::sun::star::uno::Any queryInterface (const ::com::sun::star::uno::Type &rType) SAL_OVERRIDE throw (::com::sun::star::uno::RuntimeException, std::exception)
 If a delegator is set, then the delegator is queried for the demanded interface. More...
 
virtual void setDelegator (const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > &Delegator) SAL_OVERRIDE throw (::com::sun::star::uno::RuntimeException, std::exception)
 Set the delegator. More...
 
virtual ::com::sun::star::uno::Any queryAggregation (const ::com::sun::star::uno::Type &rType) SAL_OVERRIDE throw (::com::sun::star::uno::RuntimeException, std::exception)
 Called by the delegator or queryInterface. More...
 
- Public Member Functions inherited from cppu::OWeakObject
 OWeakObject () SAL_THROW(())
 Default Constructor. More...
 
 OWeakObject (const OWeakObject &rObj) SAL_THROW(())
 Dummy copy constructor. More...
 
OWeakObjectoperator= (const OWeakObject &)
 Dummy assignment operator. More...
 
virtual ::com::sun::star::uno::Any queryInterface (const ::com::sun::star::uno::Type &rType) SAL_OVERRIDE throw (::com::sun::star::uno::RuntimeException, std::exception)
 Basic queryInterface() implementation supporting ::com::sun::star::uno::XWeak and ::com::sun::star::uno::XInterface. More...
 
virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XAdapter > queryAdapter () SAL_OVERRIDE throw (::com::sun::star::uno::RuntimeException, std::exception)
 XWeak::queryAdapter() implementation. More...
 
 operator::com::sun::star::uno::Reference () SAL_THROW(())
 Cast operator to XInterface reference. More...
 

Protected Attributes

virtual ~OWeakAggObject() SAL_THROW((::com::sun::star::uno::WeakReferenceHelper xDelegator
 Virtual dtor. More...
 
- Protected Attributes inherited from cppu::OWeakObject
oslInterlockedCount m_refCount
 reference count. More...
 

Detailed Description

Base class to implement an UNO object supporting weak references, i.e.

the object can be held weakly (by a com::sun::star::uno::WeakReference) and aggregation, i.e. the object can be aggregated by another (delegator). This implementation copes with reference counting. Upon last release(), the virtual dtor is called.

Derive:

Inherit from this class and delegate acquire()/ release() calls. Re-implement XAggregation::queryInterface().

Constructor & Destructor Documentation

cppu::OWeakAggObject::OWeakAggObject ( )
inline

Constructor.

No delegator set.

Member Function Documentation

virtual void cppu::OWeakAggObject::acquire ( )
throw (
)
virtual
virtual ::com::sun::star::uno::Any cppu::OWeakAggObject::queryAggregation ( const ::com::sun::star::uno::Type rType)
throw (::com::sun::star::uno::RuntimeException,
std::exception
)

Called by the delegator or queryInterface.

Re-implement this method instead of queryInterface.

See also
queryInterface
virtual ::com::sun::star::uno::Any cppu::OWeakAggObject::queryInterface ( const ::com::sun::star::uno::Type rType)
throw (::com::sun::star::uno::RuntimeException,
std::exception
)

If a delegator is set, then the delegator is queried for the demanded interface.

If the delegator cannot provide the demanded interface, it calls queryAggregation() on its aggregated objects.

Parameters
rTypedemanded interface type
Returns
demanded type or empty any
See also
queryAggregation.
virtual void cppu::OWeakAggObject::release ( )
throw (
)
virtual
virtual void cppu::OWeakAggObject::setDelegator ( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > &  Delegator)
throw (::com::sun::star::uno::RuntimeException,
std::exception
)
virtual

Set the delegator.

The delegator member reference is a weak reference.

Parameters
Delegatorthe object that delegate its queryInterface to this aggregate.

Member Data Documentation

virtual ~OWeakAggObject () SAL_THROW( ( ::com::sun::star::uno::WeakReferenceHelper cppu::OWeakAggObject::xDelegator
protected

Virtual dtor.

Called when reference count is 0.

Attention
Despite the fact that a RuntimeException is allowed to be thrown, you must not throw any exception upon destruction!weak reference to delegator.

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