HelperNotHelper

From Apache OpenOffice Wiki
Revision as of 11:13, 17 April 2008 by SergeMoutou (talk | contribs) (New page: It's important to figure out the difference beween class implementing component when you use or not an helper. = Class without Helper = Here is the C++ code <source lang="cpp"> class MyCo...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

It's important to figure out the difference beween class implementing component when you use or not an helper.

Class without Helper

Here is the C++ code

class MyCounterImpl
	: public XCountable
	, public XServiceInfo
{
	sal_Int32 m_nRefCount;
	sal_Int32 m_nCount;	
public:
	MyCounterImpl( const Reference< XMultiServiceFactory > & xServiceManager )
		: m_xServiceManager( xServiceManager ), m_nRefCount( 0 )
		{ printf( "< MyCounterImpl ctor called >\n" ); }
	~MyCounterImpl()
		{ printf( "< MyCounterImpl dtor called >\n" ); }

// XInterface implementation
	virtual void SAL_CALL acquire() throw ()
		{ ++m_nRefCount; }
	virtual void SAL_CALL release() throw ()
		{ if (! --m_nRefCount) delete this; }
	virtual Any SAL_CALL queryInterface( const Type & rType ) throw (RuntimeException)
		{ return cppu::queryInterface(rType, static_cast< XInterface* >
                                          ( static_cast< XServiceInfo* >( this ) ),
        				    static_cast< XCountable* >( this ),
                                      static_cast< XServiceInfo* >( this ) ); }

// XServiceInfo	implementation
    virtual OUString SAL_CALL getImplementationName(  ) throw(RuntimeException);
    virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) throw(RuntimeException);
    virtual Sequence< OUString > SAL_CALL getSupportedServiceNames(  ) throw(RuntimeException);
    static Sequence< OUString > SAL_CALL getSupportedServiceNames_Static(  );

// XCountable implementation
	virtual sal_Int32 SAL_CALL getCount() throw (RuntimeException)
		{ return m_nCount; }
	virtual void SAL_CALL setCount( sal_Int32 nCount ) throw (RuntimeException)
		{ m_nCount = nCount; }
	virtual sal_Int32 SAL_CALL increment() throw (RuntimeException)
		{ return (++m_nCount); }
	virtual sal_Int32 SAL_CALL decrement() throw (RuntimeException)
		{ return (--m_nCount); }
};
Personal tools