loplugin:refcounting
Change-Id: Ied9ecabb3cb6b5d629ec72db164df452d8ca114a
This commit is contained in:
@@ -28,13 +28,14 @@ Clob::Clob(isc_db_handle* pDatabaseHandle,
|
|||||||
isc_tr_handle* pTransactionHandle,
|
isc_tr_handle* pTransactionHandle,
|
||||||
ISC_QUAD& aBlobID):
|
ISC_QUAD& aBlobID):
|
||||||
Clob_BASE(m_aMutex),
|
Clob_BASE(m_aMutex),
|
||||||
m_aBlob(pDatabaseHandle, pTransactionHandle, aBlobID)
|
m_aBlob(new connectivity::firebird::Blob(pDatabaseHandle, pTransactionHandle, aBlobID))
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void SAL_CALL Clob::disposing()
|
void SAL_CALL Clob::disposing()
|
||||||
{
|
{
|
||||||
m_aBlob.disposing();
|
m_aBlob->dispose();
|
||||||
|
m_aBlob.clear();
|
||||||
Clob_BASE::disposing();
|
Clob_BASE::disposing();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -46,7 +47,7 @@ sal_Int64 SAL_CALL Clob::length()
|
|||||||
|
|
||||||
// read the entire blob
|
// read the entire blob
|
||||||
// TODO FIXME better solution?
|
// TODO FIXME better solution?
|
||||||
uno::Sequence < sal_Int8 > aEntireBlob = m_aBlob.getBytes( 1, m_aBlob.length());
|
uno::Sequence < sal_Int8 > aEntireBlob = m_aBlob->getBytes( 1, m_aBlob->length());
|
||||||
OUString sEntireClob ( reinterpret_cast< sal_Char *>( aEntireBlob.getArray() ),
|
OUString sEntireClob ( reinterpret_cast< sal_Char *>( aEntireBlob.getArray() ),
|
||||||
aEntireBlob.getLength(),
|
aEntireBlob.getLength(),
|
||||||
RTL_TEXTENCODING_UTF8 );
|
RTL_TEXTENCODING_UTF8 );
|
||||||
@@ -63,7 +64,7 @@ OUString SAL_CALL Clob::getSubString(sal_Int64 nPosition,
|
|||||||
// read the entire blob
|
// read the entire blob
|
||||||
// TODO FIXME better solution?
|
// TODO FIXME better solution?
|
||||||
// TODO FIXME Assume indexing of nPosition starts at position 1.
|
// TODO FIXME Assume indexing of nPosition starts at position 1.
|
||||||
uno::Sequence < sal_Int8 > aEntireBlob = m_aBlob.getBytes( 1, m_aBlob.length());
|
uno::Sequence < sal_Int8 > aEntireBlob = m_aBlob->getBytes( 1, m_aBlob->length());
|
||||||
OUString sEntireClob ( reinterpret_cast< sal_Char *>( aEntireBlob.getArray() ),
|
OUString sEntireClob ( reinterpret_cast< sal_Char *>( aEntireBlob.getArray() ),
|
||||||
aEntireBlob.getLength(),
|
aEntireBlob.getLength(),
|
||||||
RTL_TEXTENCODING_UTF8 );
|
RTL_TEXTENCODING_UTF8 );
|
||||||
@@ -77,7 +78,10 @@ OUString SAL_CALL Clob::getSubString(sal_Int64 nPosition,
|
|||||||
uno::Reference< XInputStream > SAL_CALL Clob::getCharacterStream()
|
uno::Reference< XInputStream > SAL_CALL Clob::getCharacterStream()
|
||||||
throw(SQLException, RuntimeException, std::exception)
|
throw(SQLException, RuntimeException, std::exception)
|
||||||
{
|
{
|
||||||
return m_aBlob.getBinaryStream();
|
MutexGuard aGuard(m_aMutex);
|
||||||
|
checkDisposed(Clob_BASE::rBHelper.bDisposed);
|
||||||
|
|
||||||
|
return m_aBlob->getBinaryStream();
|
||||||
}
|
}
|
||||||
|
|
||||||
sal_Int64 SAL_CALL Clob::position(const OUString& /*rPattern*/,
|
sal_Int64 SAL_CALL Clob::position(const OUString& /*rPattern*/,
|
||||||
|
@@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
#include <com/sun/star/io/XInputStream.hpp>
|
#include <com/sun/star/io/XInputStream.hpp>
|
||||||
#include <com/sun/star/sdbc/XClob.hpp>
|
#include <com/sun/star/sdbc/XClob.hpp>
|
||||||
|
#include <rtl/ref.hxx>
|
||||||
|
|
||||||
namespace connectivity
|
namespace connectivity
|
||||||
{
|
{
|
||||||
@@ -35,7 +36,7 @@ namespace connectivity
|
|||||||
* hence we store the data in a Blob, and the Clob class is
|
* hence we store the data in a Blob, and the Clob class is
|
||||||
* a wrapper around that.
|
* a wrapper around that.
|
||||||
*/
|
*/
|
||||||
connectivity::firebird::Blob m_aBlob;
|
rtl::Reference<connectivity::firebird::Blob> m_aBlob;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Clob(isc_db_handle* pDatabaseHandle,
|
Clob(isc_db_handle* pDatabaseHandle,
|
||||||
|
Reference in New Issue
Block a user