LibreOffice Module connectivity (master) 1
|
#include <DIndex.hxx>
Classes | |
struct | NDXHeader |
Public Member Functions | |
ODbaseIndex (ODbaseTable *_pTable) | |
ODbaseIndex (ODbaseTable *_pTable, const NDXHeader &_aHeader, const OUString &Name) | |
void | openIndexFile () |
virtual void | refreshColumns () override |
const ODbaseTable * | getTable () const |
const NDXHeader & | getHeader () const |
std::unique_ptr< OIndexIterator > | createIterator () |
void | SetRootPos (sal_uInt32 nPos) |
void | SetPageCount (sal_uInt32 nCount) |
sal_uInt32 | GetPageCount () const |
sal_uInt16 | GetMaxNodes () const |
bool | Insert (sal_uInt32 nRec, const ORowSetValue &rValue) |
bool | Update (sal_uInt32 nRec, const ORowSetValue &, const ORowSetValue &) |
bool | Delete (sal_uInt32 nRec, const ORowSetValue &rValue) |
bool | Find (sal_uInt32 nRec, const ORowSetValue &rValue) |
void | createINFEntry () |
void | CreateImpl () |
void | DropImpl () |
DECLARE_SERVICE_INFO () | |
Public Member Functions inherited from connectivity::sdbcx::OIndex | |
OIndex (bool _bCase) | |
OIndex (const OUString &Name, OUString Catalog, bool _isUnique, bool _isPrimaryKeyIndex, bool _isClustered, bool _bCase) | |
virtual | ~OIndex () override |
DECLARE_SERVICE_INFO () | |
virtual css::uno::Any SAL_CALL | queryInterface (const css::uno::Type &rType) override |
virtual void SAL_CALL | acquire () noexcept override |
virtual void SAL_CALL | release () noexcept override |
virtual css::uno::Sequence< css::uno::Type > SAL_CALL | getTypes () override |
virtual void | construct () override |
virtual void SAL_CALL | disposing () override |
virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL | getPropertySetInfo () override |
virtual css::uno::Reference< css::container::XNameAccess > SAL_CALL | getColumns () override |
virtual OUString SAL_CALL | getName () override |
virtual void SAL_CALL | setName (const OUString &aName) override |
virtual css::uno::Reference< css::beans::XPropertySet > SAL_CALL | createDataDescriptor () override |
virtual void | refreshColumns ()=0 |
Public Member Functions inherited from comphelper::OIdPropertyArrayUsageHelper< class TYPE > | |
OIdPropertyArrayUsageHelper () | |
virtual | ~OIdPropertyArrayUsageHelper () |
::cppu::IPropertyArrayHelper * | getArrayHelper (sal_Int32 nId) |
Public Member Functions inherited from connectivity::sdbcx::ODescriptor | |
ODescriptor (::cppu::OBroadcastHelper &_rBHelper, bool _bCase, bool _bNew=false) | |
virtual | ~ODescriptor () override |
bool | isNew () const |
void | setNew (bool _bNew) |
bool | isCaseSensitive () const |
virtual void | construct () |
virtual css::uno::Sequence< css::uno::Type > SAL_CALL | getTypes () |
Public Member Functions inherited from comphelper::OPropertyContainer | |
virtual | ~OPropertyContainer () |
Public Member Functions inherited from cppu::ImplHelper1< class Ifc1 > | |
virtual css::uno::Any SAL_CALL | queryInterface (css::uno::Type const &rType) SAL_OVERRIDE |
virtual css::uno::Sequence< css::uno::Type > SAL_CALL | getTypes () SAL_OVERRIDE |
virtual css::uno::Sequence< sal_Int8 > SAL_CALL | getImplementationId () SAL_OVERRIDE |
Protected Member Functions | |
virtual | ~ODbaseIndex () override |
ONDXPage * | CreatePage (sal_uInt32 nPagePos, ONDXPage *pParent=nullptr, bool bLoad=false) |
void | Collect (ONDXPage *) |
ONDXPagePtr const & | getRoot () |
bool | isUnique () const |
bool | UseCollector () const |
void | Release (bool bSave=true) |
bool | ConvertToKey (ONDXKey *rKey, sal_uInt32 nRec, const ORowSetValue &rValue) |
Protected Member Functions inherited from connectivity::sdbcx::OIndex | |
virtual void | refreshColumns () override |
virtual ::cppu::IPropertyArrayHelper * | createArrayHelper (sal_Int32 _nId) const override |
virtual ::cppu::IPropertyArrayHelper &SAL_CALL | getInfoHelper () override |
Protected Member Functions inherited from connectivity::sdbcx::IRefreshableColumns | |
~IRefreshableColumns () | |
virtual ::cppu::IPropertyArrayHelper * | createArrayHelper (sal_Int32 nId) const=0 |
Protected Member Functions inherited from connectivity::sdbcx::ODescriptor | |
::cppu::IPropertyArrayHelper * | doCreateArrayHelper () const |
helper for derived classes to implement OPropertyArrayUsageHelper::createArrayHelper More... | |
Protected Member Functions inherited from comphelper::OPropertyContainer | |
OPropertyContainer (::cppu::OBroadcastHelper &_rBHelper) | |
virtual sal_Bool SAL_CALL | convertFastPropertyValue (css::uno::Any &rConvertedValue, css::uno::Any &rOldValue, sal_Int32 nHandle, const css::uno::Any &rValue) override |
virtual void SAL_CALL | setFastPropertyValue_NoBroadcast (sal_Int32 nHandle, const css::uno::Any &rValue) override |
virtual void SAL_CALL | getFastPropertyValue (css::uno::Any &rValue, sal_Int32 nHandle) const override |
virtual css::uno::Any SAL_CALL | getFastPropertyValue (sal_Int32 nHandle) override final |
virtual void | getFastPropertyValue (std::unique_lock< std::mutex > &rGuard, css::uno::Any &rValue, sal_Int32 nHandle) const =0 |
virtual void SAL_CALL | setFastPropertyValue (sal_Int32 nHandle, const css::uno::Any &rValue) override final |
Protected Member Functions inherited from comphelper::OPropertyContainerHelper | |
OPropertyContainerHelper () | |
~OPropertyContainerHelper () | |
void | registerProperty (const OUString &_rName, sal_Int32 _nHandle, sal_Int32 _nAttributes, void *_pPointerToMember, const css::uno::Type &_rMemberType) |
void | registerMayBeVoidProperty (const OUString &_rName, sal_Int32 _nHandle, sal_Int32 _nAttributes, css::uno::Any *_pPointerToMember, const css::uno::Type &_rExpectedType) |
void | registerPropertyNoMember (const OUString &_rName, sal_Int32 _nHandle, sal_Int32 _nAttributes, const css::uno::Type &_rType, css::uno::Any const &_pInitialValue) |
void | revokeProperty (sal_Int32 _nHandle) |
bool | isRegisteredProperty (sal_Int32 _nHandle) const |
bool | isRegisteredProperty (const OUString &_rName) const |
bool | convertFastPropertyValue (css::uno::Any &rConvertedValue, css::uno::Any &rOldValue, sal_Int32 nHandle, const css::uno::Any &rValue) |
void | setFastPropertyValue (sal_Int32 nHandle, const css::uno::Any &rValue) |
void | getFastPropertyValue (css::uno::Any &rValue, sal_Int32 nHandle) const |
void | describeProperties (css::uno::Sequence< css::beans::Property > &_rProps) const |
const css::beans::Property & | getProperty (const OUString &_rName) const |
Protected Member Functions inherited from cppu::ImplHelper1< class Ifc1 > | |
~ImplHelper1 () SAL_NOEXCEPT | |
Private Member Functions | |
OUString | getCompletePath () const |
void | closeImpl () |
void | impl_killFileAndthrowError_throw (TranslateId pErrorId, const OUString &_sFile) |
Private Attributes | |
std::unique_ptr< SvStream > | m_pFileStream |
NDXHeader | m_aHeader = {} |
std::vector< ONDXPage * > | m_aCollector |
ONDXPagePtr | m_aRoot |
ONDXPagePtr | m_aCurLeaf |
sal_uInt16 | m_nCurNode |
sal_uInt32 | m_nPageCount |
sal_uInt32 | m_nRootPage |
ODbaseTable * | m_pTable |
bool | m_bUseCollector: 1 |
Friends | |
class | ONDXNode |
class | ONDXPage |
class | ONDXPagePtr |
class | OIndexIterator |
SvStream & | WriteODbaseIndex (SvStream &rStream, const ODbaseIndex &) |
SvStream & | operator>> (SvStream &rStream, ODbaseIndex &) |
Additional Inherited Members | |
Static Public Member Functions inherited from connectivity::sdbcx::ODescriptor | |
static bool | isNew (const css::uno::Reference< css::uno::XInterface > &_rxDescriptor) |
Static Protected Member Functions inherited from comphelper::OPropertyContainer | |
static css::uno::Sequence< css::uno::Type > | getBaseTypes () |
Protected Attributes inherited from connectivity::sdbcx::OIndex | |
OUString | m_Catalog |
bool | m_IsUnique |
bool | m_IsPrimaryKeyIndex |
bool | m_IsClustered |
std::unique_ptr< OCollection > | m_pColumns |
Protected Attributes inherited from cppu::BaseMutex | |
mutable::osl::Mutex | m_aMutex |
Protected Attributes inherited from connectivity::sdbcx::ODescriptor | |
OUString | m_Name |
Definition at line 35 of file DIndex.hxx.
|
overrideprotectedvirtual |
Definition at line 79 of file DIndex.cxx.
References closeImpl().
ODbaseIndex::ODbaseIndex | ( | ODbaseTable * | _pTable | ) |
Definition at line 54 of file DIndex.cxx.
References connectivity::sdbcx::OIndex::construct().
ODbaseIndex::ODbaseIndex | ( | ODbaseTable * | _pTable, |
const NDXHeader & | _aHeader, | ||
const OUString & | Name | ||
) |
Definition at line 65 of file DIndex.cxx.
References connectivity::sdbcx::OIndex::construct().
|
private |
Definition at line 288 of file DIndex.cxx.
References m_pFileStream.
Referenced by DropImpl(), impl_killFileAndthrowError_throw(), Release(), and ~ODbaseIndex().
|
protected |
Definition at line 245 of file DIndex.cxx.
References m_aCollector.
Referenced by connectivity::dbase::ONDXPage::QueryDelete().
|
protected |
Definition at line 148 of file DIndex.cxx.
References connectivity::dbase::ODbaseIndex::NDXHeader::db_keytype, Exception, connectivity::ORowSetValue::getDouble(), connectivity::ORowSetValue::getString(), connectivity::ORowSetValue::isNull(), m_aHeader, and m_pFileStream.
void ODbaseIndex::CreateImpl | ( | ) |
Definition at line 454 of file DIndex.cxx.
References aName, createINFEntry(), CreatePage(), connectivity::file::OConnection::createStatement(), connectivity::dbase::ODbaseIndex::NDXHeader::db_keylen, connectivity::dbase::ODbaseIndex::NDXHeader::db_keyrec, connectivity::dbase::ODbaseIndex::NDXHeader::db_keytype, connectivity::dbase::ODbaseIndex::NDXHeader::db_maxkeys, connectivity::dbase::ODbaseIndex::NDXHeader::db_name, connectivity::dbase::ODbaseIndex::NDXHeader::db_unique, DINDEX_PAGE_SIZE, Exception, connectivity::find(), getCompletePath(), connectivity::file::OFileTable::getConnection(), connectivity::dbase::ODbaseResultSet::getCurrentFilePos(), getINT32(), connectivity::file::OConnection::getMetaData(), connectivity::file::OFileTable::getName(), dbtools::OPropertyMap::getNameByIndex(), connectivity::OMetaConnection::getPropMap(), connectivity::OMetaConnection::getResources(), connectivity::SharedResources::getResourceStringWithSubstitution(), getString(), connectivity::file::OFileTable::getTableColumns(), connectivity::OMetaConnection::getTextEncoding(), utl::SharedUNOComponent< class INTERFACE, class COMPONENT >::getTyped(), impl_killFileAndthrowError_throw(), connectivity::dbase::ONDXPage::Insert(), utl::SharedUNOComponent< class INTERFACE, class COMPONENT >::is(), connectivity::sdbcx::ODescriptor::isCaseSensitive(), m_aCurLeaf, m_aHeader, m_aRoot, m_bUseCollector, connectivity::sdbcx::OIndex::m_IsUnique, m_nCurNode, m_nPageCount, m_nRootPage, connectivity::sdbcx::OIndex::m_pColumns, m_pFileStream, m_pTable, NODE_NOTFOUND, nType, pq_sdbc_driver::OUStringToOString(), PROPERTY_ID_NAME, PROPERTY_ID_PRECISION, PROPERTY_ID_TYPE, Release(), utl::SharedUNOComponent< class INTERFACE, class COMPONENT >::set(), connectivity::dbase::ONDXPage::SetModified(), connectivity::dbase::ONDXKey::setRecord(), connectivity::dbase::ONDXKey::setValue(), dbtools::throwFunctionSequenceException(), dbtools::throwGenericSQLException(), and connectivity::OMetaConnection::throwGenericSQLException().
Referenced by connectivity::dbase::ODbaseIndexes::appendObject().
void ODbaseIndex::createINFEntry | ( | ) |
Definition at line 369 of file DIndex.cxx.
References dBASE_III_GROUP, connectivity::file::OFileTable::getConnection(), Config::GetKeyCount(), Config::GetKeyName(), connectivity::file::OFileTable::getName(), dbtools::OPropertyMap::getNameByIndex(), connectivity::OMetaConnection::getPropMap(), connectivity::OMetaConnection::getTextEncoding(), connectivity::OMetaConnection::getURL(), i, connectivity::sdbcx::ODescriptor::isCaseSensitive(), connectivity::sdbcx::ODescriptor::m_Name, m_pTable, pq_sdbc_driver::OUStringToOString(), PROPERTY_ID_DELIMITER, Config::SetGroup(), and Config::WriteKey().
Referenced by CreateImpl().
std::unique_ptr< OIndexIterator > ODbaseIndex::createIterator | ( | ) |
Definition at line 142 of file DIndex.cxx.
References openIndexFile().
Referenced by connectivity::dbase::ODbaseResultSet::fillIndexValues().
|
protected |
Definition at line 293 of file DIndex.cxx.
References m_aCollector, m_pFileStream, ONDXPage, connectivity::dbase::ONDXPage::SetPagePos(), and connectivity::dbase::ONDXPage::SetParent().
Referenced by CreateImpl(), connectivity::dbase::ONDXNode::GetChild(), connectivity::dbase::ONDXPage::GetChild(), getRoot(), and connectivity::dbase::ONDXPage::Insert().
connectivity::dbase::ODbaseIndex::DECLARE_SERVICE_INFO | ( | ) |
bool ODbaseIndex::Delete | ( | sal_uInt32 | nRec, |
const ORowSetValue & | rValue | ||
) |
Definition at line 224 of file DIndex.cxx.
References ConvertToKey(), connectivity::dbase::ONDXPage::Delete(), Find(), getRoot(), connectivity::dbase::ONDXPagePtr::Is(), m_aCurLeaf, m_aRoot, m_nCurNode, m_pFileStream, openIndexFile(), and connectivity::dbase::ONDXPage::PrintPage().
Referenced by Update().
void ODbaseIndex::DropImpl | ( | ) |
Definition at line 404 of file DIndex.cxx.
References closeImpl(), dBASE_III_GROUP, Config::DeleteKey(), getCompletePath(), connectivity::file::OFileTable::getConnection(), Config::GetKeyCount(), Config::GetKeyName(), connectivity::file::OFileTable::getName(), dbtools::OPropertyMap::getNameByIndex(), connectivity::OMetaConnection::getPropMap(), connectivity::OMetaConnection::getTextEncoding(), connectivity::OMetaConnection::getURL(), connectivity::sdbcx::ODescriptor::m_Name, m_pTable, PROPERTY_ID_DELIMITER, Config::ReadKey(), Config::SetGroup(), and connectivity::OMetaConnection::throwGenericSQLException().
bool ODbaseIndex::Find | ( | sal_uInt32 | nRec, |
const ORowSetValue & | rValue | ||
) |
Definition at line 176 of file DIndex.cxx.
References ConvertToKey(), connectivity::dbase::ONDXPage::Find(), getRoot(), m_pFileStream, and openIndexFile().
|
private |
Definition at line 361 of file DIndex.cxx.
References connectivity::file::OFileTable::getConnection(), dbtools::OPropertyMap::getNameByIndex(), connectivity::OMetaConnection::getPropMap(), connectivity::OMetaConnection::getURL(), connectivity::sdbcx::ODescriptor::m_Name, m_pTable, and PROPERTY_ID_DELIMITER.
Referenced by CreateImpl(), DropImpl(), and openIndexFile().
|
inline |
Definition at line 95 of file DIndex.hxx.
References m_aHeader.
Referenced by connectivity::dbase::ONDXPage::Insert(), connectivity::dbase::ONDXPage::IsFull(), connectivity::dbase::ONDXPage::ONDXPage(), connectivity::dbase::ONDXPage::PrintPage(), connectivity::dbase::ONDXPage::QueryDelete(), connectivity::dbase::ONDXNode::Read(), connectivity::dbase::ONDXPage::Release(), connectivity::dbase::ONDXNode::Write(), and connectivity::dbase::WriteONDXPage().
|
inline |
Definition at line 103 of file DIndex.hxx.
References connectivity::dbase::ODbaseIndex::NDXHeader::db_maxkeys, and m_aHeader.
Referenced by connectivity::dbase::ONDXPage::Delete(), connectivity::dbase::ONDXPage::Insert(), and connectivity::dbase::ONDXPage::Merge().
|
inline |
Definition at line 101 of file DIndex.hxx.
References m_nPageCount.
Referenced by connectivity::dbase::ONDXPage::Insert().
|
protected |
Definition at line 102 of file DIndex.cxx.
References CreatePage(), connectivity::dbase::ODbaseIndex::NDXHeader::db_pagecount, connectivity::dbase::ODbaseIndex::NDXHeader::db_rootpage, connectivity::dbase::ONDXPagePtr::Is(), m_aHeader, m_aRoot, m_nPageCount, m_nRootPage, and openIndexFile().
|
inline |
Definition at line 94 of file DIndex.hxx.
References m_pTable.
Referenced by connectivity::dbase::ODbaseIndexColumns::createDescriptor(), and connectivity::dbase::ODbaseIndexColumns::createObject().
|
private |
Definition at line 446 of file DIndex.cxx.
References closeImpl(), connectivity::file::OFileTable::getConnection(), m_pTable, and connectivity::OMetaConnection::throwGenericSQLException().
Referenced by CreateImpl().
bool ODbaseIndex::Insert | ( | sal_uInt32 | nRec, |
const ORowSetValue & | rValue | ||
) |
Definition at line 187 of file DIndex.cxx.
References ConvertToKey(), Find(), getRoot(), connectivity::dbase::ONDXPage::Insert(), connectivity::dbase::ONDXPagePtr::Is(), isUnique(), m_aCurLeaf, m_pFileStream, openIndexFile(), and Release().
Referenced by Update().
|
inlineprotected |
Definition at line 121 of file DIndex.hxx.
References connectivity::sdbcx::OIndex::m_IsUnique.
Referenced by connectivity::dbase::ONDXPage::Insert(), Insert(), connectivity::dbase::ONDXPage::Split(), Update(), and connectivity::dbase::ONDXNode::Write().
void ODbaseIndex::openIndexFile | ( | ) |
Definition at line 114 of file DIndex.cxx.
References DINDEX_PAGE_SIZE, getCompletePath(), connectivity::file::OFileTable::getConnection(), connectivity::OMetaConnection::getResources(), connectivity::SharedResources::getResourceStringWithSubstitution(), m_pFileStream, m_pTable, and dbtools::throwGenericSQLException().
Referenced by createIterator(), Delete(), Find(), getRoot(), Insert(), and Update().
|
overridevirtual |
Reimplemented from connectivity::sdbcx::OIndex.
Definition at line 84 of file DIndex.cxx.
References connectivity::dbase::ODbaseIndex::NDXHeader::db_name, connectivity::sdbcx::ODescriptor::isNew(), m_aHeader, cppu::BaseMutex::m_aMutex, connectivity::sdbcx::OIndex::m_pColumns, and m_pFileStream.
Referenced by connectivity::dbase::ODbaseIndexColumns::impl_refresh().
|
protected |
Definition at line 251 of file DIndex.cxx.
References connectivity::dbase::ONDXPagePtr::Clear(), closeImpl(), connectivity::dbase::ODbaseIndex::NDXHeader::db_pagecount, connectivity::dbase::ODbaseIndex::NDXHeader::db_rootpage, i, connectivity::dbase::ONDXPagePtr::Is(), m_aCollector, m_aCurLeaf, m_aHeader, m_aRoot, m_bUseCollector, m_nCurNode, m_nPageCount, m_nRootPage, m_pFileStream, NODE_NOTFOUND, connectivity::dbase::ONDXPage::Release(), and WriteODbaseIndex.
Referenced by CreateImpl(), and Insert().
|
inline |
Definition at line 99 of file DIndex.hxx.
References m_nPageCount, and nCount.
Referenced by connectivity::dbase::ONDXPage::Insert().
|
inline |
Definition at line 98 of file DIndex.hxx.
References m_nRootPage, and nPos.
Referenced by connectivity::dbase::ONDXPage::Delete(), connectivity::dbase::ONDXPage::Insert(), and connectivity::dbase::ONDXPage::Merge().
bool ODbaseIndex::Update | ( | sal_uInt32 | nRec, |
const ORowSetValue & | rOldValue, | ||
const ORowSetValue & | rNewValue | ||
) |
Definition at line 211 of file DIndex.cxx.
References ConvertToKey(), Delete(), Find(), getRoot(), Insert(), isUnique(), m_pFileStream, and openIndexFile().
|
inlineprotected |
Definition at line 122 of file DIndex.hxx.
References m_bUseCollector.
Referenced by connectivity::dbase::ONDXPage::QueryDelete().
|
friend |
Definition at line 43 of file DIndex.hxx.
|
friend |
Definition at line 40 of file DIndex.hxx.
|
friend |
Definition at line 41 of file DIndex.hxx.
Referenced by CreatePage().
|
friend |
Definition at line 42 of file DIndex.hxx.
|
friend |
|
friend |
Referenced by Release().
|
private |
Definition at line 70 of file DIndex.hxx.
Referenced by Collect(), CreatePage(), and Release().
|
private |
Definition at line 72 of file DIndex.hxx.
Referenced by CreateImpl(), Delete(), connectivity::dbase::ONDXPage::Find(), connectivity::dbase::ONDXPage::Insert(), Insert(), and Release().
|
private |
Definition at line 68 of file DIndex.hxx.
Referenced by ConvertToKey(), CreateImpl(), getHeader(), GetMaxNodes(), getRoot(), connectivity::dbase::operator>>(), refreshColumns(), Release(), and connectivity::dbase::WriteODbaseIndex().
|
private |
Definition at line 71 of file DIndex.hxx.
Referenced by CreateImpl(), Delete(), getRoot(), connectivity::dbase::ONDXPage::Insert(), connectivity::dbase::ONDXPage::Merge(), and Release().
|
private |
Definition at line 79 of file DIndex.hxx.
Referenced by CreateImpl(), Release(), and UseCollector().
|
private |
Definition at line 73 of file DIndex.hxx.
Referenced by CreateImpl(), Delete(), connectivity::dbase::ONDXPage::Find(), connectivity::dbase::ONDXPage::Insert(), and Release().
|
private |
Definition at line 75 of file DIndex.hxx.
Referenced by CreateImpl(), GetPageCount(), getRoot(), connectivity::dbase::operator>>(), Release(), and SetPageCount().
|
private |
Definition at line 76 of file DIndex.hxx.
Referenced by CreateImpl(), getRoot(), connectivity::dbase::operator>>(), Release(), and SetRootPos().
|
private |
Definition at line 67 of file DIndex.hxx.
Referenced by closeImpl(), ConvertToKey(), CreateImpl(), CreatePage(), Delete(), Find(), Insert(), openIndexFile(), connectivity::dbase::ONDXPage::QueryDelete(), refreshColumns(), Release(), and Update().
|
private |
Definition at line 78 of file DIndex.hxx.
Referenced by CreateImpl(), createINFEntry(), DropImpl(), getCompletePath(), getTable(), impl_killFileAndthrowError_throw(), openIndexFile(), connectivity::dbase::ONDXNode::Read(), and connectivity::dbase::ONDXNode::Write().