Kaydet (Commit) 48cc4f1b authored tarafından Noel Grandin's avatar Noel Grandin

use SimpleReferenceObject in connectivity module

to replace hand-rolled version

Change-Id: I7a7bf7f8f7d4f8a73ee842e7aba5eab5a254d8eb
üst f219bfb2
......@@ -37,6 +37,7 @@
#include <com/sun/star/uno/XComponentContext.hpp>
#include <connectivity/dbtoolsdllapi.hxx>
#include <cppuhelper/supportsservice.hxx>
#include <salhelper/simplereferenceobject.hxx>
namespace com { namespace sun { namespace star { namespace util {
struct Date;
......@@ -63,19 +64,18 @@ namespace connectivity
typedef std::map<OUString,OSQLTable,comphelper::UStringMixLess> OSQLTables;
// class ORefVector allows reference counting on a std::vector
template< class VectorVal > class ORefVector
template< class VectorVal > class ORefVector : public salhelper::SimpleReferenceObject
{
std::vector< VectorVal > m_vector;
oslInterlockedCount m_refCount;
protected:
virtual ~ORefVector(){}
public:
typedef std::vector< VectorVal > Vector;
ORefVector() : m_refCount(0) {}
ORefVector(size_t _st) : m_vector(_st) , m_refCount(0) {}
ORefVector(const ORefVector& _rRH) : m_vector(_rRH.m_vector),m_refCount(0)
ORefVector() {}
ORefVector(size_t _st) : m_vector(_st) {}
ORefVector(const ORefVector& _rRH) : m_vector(_rRH.m_vector)
{
}
ORefVector& operator=(const ORefVector& _rRH)
......@@ -89,26 +89,6 @@ namespace connectivity
std::vector< VectorVal > & get() { return m_vector; }
std::vector< VectorVal > const & get() const { return m_vector; }
inline static void * SAL_CALL operator new( size_t nSize )
{ return ::rtl_allocateMemory( nSize ); }
inline static void SAL_CALL operator delete( void * pMem )
{ ::rtl_freeMemory( pMem ); }
inline static void * SAL_CALL operator new( size_t, void * pMem )
{ return pMem; }
inline static void SAL_CALL operator delete( void *, void * )
{}
void acquire()
{
osl_atomic_increment( &m_refCount );
}
void release()
{
if (! osl_atomic_decrement( &m_refCount ))
delete this;
}
};
// class ORowVector incudes refcounting and initialze himself
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment