LibreOffice Module store (master) 1
|
#include <storpage.hxx>
Public Member Functions | |
OStorePageManager () | |
virtual storeError | initialize (ILockBytes *pLockBytes, storeAccessMode eAccessMode, sal_uInt16 &rnPageSize) override |
Initialization (two-phase construction). More... | |
bool | isValid () const |
isValid. More... | |
storeError | iget (OStoreDirectoryPageObject &rPage, sal_uInt32 nAttrib, const rtl_String *pPath, const rtl_String *pName, storeAccessMode eMode) |
storeError | iterate (OStorePageKey &rKey, OStorePageLink &rLink, sal_uInt32 &rAttrib) |
storeError | remove (const OStorePageKey &rKey) |
remove. More... | |
virtual bool | isKindOf (sal_uInt32 nTypeId) override |
IStoreHandle. More... | |
Public Member Functions inherited from store::OStorePageBIOS | |
OStorePageBIOS () | |
operator osl::Mutex & (void) const | |
Conversion into Mutex&. More... | |
virtual storeError | initialize (ILockBytes *pLockBytes, storeAccessMode eAccessMode, sal_uInt16 &rnPageSize) |
Initialization. More... | |
rtl::Reference< PageData::Allocator > & | allocator () |
storeError | read (sal_uInt32 nAddr, void *pData, sal_uInt32 nSize) const |
storeError | write (sal_uInt32 nAddr, const void *pData, sal_uInt32 nSize) const |
bool | isWriteable () const |
bool | isValid () const |
storeError | acquirePage (const OStorePageDescriptor &rDescr, storeAccessMode eMode) |
storeError | releasePage (const OStorePageDescriptor &rDescr) |
storeError | allocate (OStorePageObject &rPage) |
storeError | free (sal_uInt32 nAddr) |
storeError | loadObjectAt (OStorePageObject &rPage, sal_uInt32 nAddr) |
Page I/O. More... | |
storeError | saveObjectAt (OStorePageObject &rPage, sal_uInt32 nAddr) |
storeError | close () |
close. More... | |
storeError | flush () |
flush. More... | |
Public Member Functions inherited from store::OStoreObject | |
OStoreObject () | |
virtual bool | isKindOf (sal_uInt32 nTypeId) |
Replaces dynamic_cast type checking. More... | |
Public Member Functions inherited from salhelper::SimpleReferenceObject | |
SimpleReferenceObject () | |
void | acquire () |
void | release () |
Static Public Member Functions | |
static storeError | namei (const rtl_String *pPath, const rtl_String *pName, OStorePageKey &rKey) |
DirectoryPage I/O (managed). More... | |
Static Public Member Functions inherited from salhelper::SimpleReferenceObject | |
static void * | operator new (std::size_t nSize) |
static void * | operator new (std::size_t nSize, std::nothrow_t const &rNothrow) |
static void | operator delete (void *pPtr) |
static void | operator delete (void *pPtr, std::nothrow_t const &rNothrow) |
Protected Member Functions | |
virtual | ~OStorePageManager () override |
Protected Member Functions inherited from store::OStorePageBIOS | |
virtual | ~OStorePageBIOS () override |
Protected Member Functions inherited from store::OStoreObject | |
virtual | ~OStoreObject () override |
Protected Member Functions inherited from salhelper::SimpleReferenceObject | |
virtual | ~SimpleReferenceObject () COVERITY_NOEXCEPT_FALSE |
Private Types | |
typedef OStorePageBIOS | base |
typedef OStorePageManager | self |
typedef OStoreBTreeEntry | entry |
typedef OStoreBTreeNodeData | page |
typedef OStoreBTreeNodeObject | node |
typedef OStoreDirectoryPageData | inode |
typedef PageHolderObject< inode > | inode_holder_type |
Private Member Functions | |
storeError | load_dirpage_Impl (const OStorePageKey &rKey, OStoreDirectoryPageObject &rPage) |
DirectoryPage I/O (managed). More... | |
storeError | save_dirpage_Impl (const OStorePageKey &rKey, OStoreDirectoryPageObject &rPage) |
storeError | find_lookup (OStoreBTreeNodeObject &rNode, sal_uInt16 &rIndex, OStorePageKey const &rKey) |
find_lookup (node page and index, w/o split). More... | |
storeError | remove_Impl (entry &rEntry) |
remove (possibly down from root). More... | |
OStorePageManager (const OStorePageManager &)=delete | |
OStorePageManager & | operator= (const OStorePageManager &)=delete |
Private Attributes | |
OStoreBTreeRootObject | m_aRoot |
Representation. More... | |
Static Private Attributes | |
static const sal_uInt32 | m_nTypeId = sal_uInt32(0x62190120) |
IStoreHandle TypeId. More... | |
Friends | |
OStorePageManager *SAL_CALL | query (OStoreObject *pHandle, OStorePageManager *) |
IStoreHandle query() template function specialization. More... | |
Additional Inherited Members | |
Protected Attributes inherited from salhelper::SimpleReferenceObject | |
oslInterlockedCount | m_nCount |
Definition at line 38 of file storpage.hxx.
|
private |
Definition at line 90 of file storpage.hxx.
|
private |
Definition at line 93 of file storpage.hxx.
|
private |
Definition at line 97 of file storpage.hxx.
|
private |
Definition at line 98 of file storpage.hxx.
|
private |
Definition at line 95 of file storpage.hxx.
|
private |
Definition at line 94 of file storpage.hxx.
|
private |
Definition at line 91 of file storpage.hxx.
OStorePageManager::OStorePageManager | ( | ) |
Definition at line 37 of file storpage.cxx.
|
overrideprotectedvirtual |
Definition at line 41 of file storpage.cxx.
|
privatedelete |
|
private |
find_lookup (node page and index, w/o split).
Definition at line 101 of file storpage.cxx.
References store::OStoreBTreeEntry::compare(), store::OStoreBTreeEntry::COMPARE_EQUAL, store::OStoreBTreeRootObject::find_lookup(), store::OStorePageObject::get(), store::OStorePageLink::location(), store::OStoreBTreeEntry::m_aLink, m_aRoot, SAL_WARN_IF, store_E_None, store_E_NotExists, and STORE_PAGE_NULL.
Referenced by load_dirpage_Impl(), and remove().
storeError OStorePageManager::iget | ( | OStoreDirectoryPageObject & | rPage, |
sal_uInt32 | nAttrib, | ||
const rtl_String * | pPath, | ||
const rtl_String * | pName, | ||
storeAccessMode | eMode | ||
) |
Definition at line 229 of file storpage.cxx.
References store::OStorePageBIOS::allocator(), store::OStoreDirectoryPageObject::attrib(), store::OStorePageObject::construct(), eMode, store::OStorePageObject::get(), store::htonl(), isValid(), store::OStorePageBIOS::isWriteable(), store::OStoreDirectoryPageObject::key(), load_dirpage_Impl(), store::OStoreDirectoryPageData::m_aNameBlock, store::OStorePageKey::m_nLow, store::OStoreDirectoryPageData::m_pData, store::OStorePageNameBlock::m_pData, namei(), store::ntohl(), pName, ReadOnly, ReadWrite, save_dirpage_Impl(), STORE_ATTRIB_ISDIR, STORE_ATTRIB_ISLINK, store_E_AccessViolation, store_E_InvalidAccess, store_E_None, and store_E_NotExists.
|
overridevirtual |
Initialization (two-phase construction).
Reimplemented from store::OStorePageBIOS.
Definition at line 54 of file storpage.cxx.
References store::OStorePageObject::get(), store::OStorePageBIOS::initialize(), store::OStorePageBIOS::isWriteable(), store::OStorePageBIOS::loadObjectAt(), store::OStoreBTreeRootObject::loadOrCreate(), m_aRoot, store::OStorePageBIOS::saveObjectAt(), store_E_InvalidParameter, store_E_None, and store_E_Pending.
|
overridevirtual |
IStoreHandle.
Reimplemented from store::OStoreObject.
Definition at line 45 of file storpage.cxx.
References m_nTypeId.
|
inline |
isValid.
Definition at line 138 of file storpage.hxx.
References store::OStorePageBIOS::isValid().
storeError OStorePageManager::iterate | ( | OStorePageKey & | rKey, |
OStorePageLink & | rLink, | ||
sal_uInt32 & | rAttrib | ||
) |
Definition at line 316 of file storpage.cxx.
References store::OStoreBTreeRootObject::find_lookup(), store::OStorePageObject::get(), i, isValid(), store::OStoreBTreeEntry::m_aKey, store::OStoreBTreeEntry::m_aLink, m_aRoot, store::OStoreBTreeEntry::m_nAttrib, store::ntohl(), store_E_InvalidAccess, and store_E_None.
|
private |
DirectoryPage I/O (managed).
Definition at line 352 of file storpage.cxx.
References find_lookup(), store::OStorePageObject::get(), i, store::OStorePageBIOS::loadObjectAt(), store::OStorePageLink::location(), store::OStoreBTreeEntry::m_aLink, and store_E_None.
Referenced by iget().
|
static |
DirectoryPage I/O (managed).
Definition at line 206 of file storpage.cxx.
References store::htonl(), store::OStorePageKey::m_nHigh, store::OStorePageKey::m_nLow, pName, store_E_InvalidParameter, store_E_NameTooLong, store_E_None, and STORE_MAXIMUM_NAMESIZE.
Referenced by iget().
|
privatedelete |
storeError OStorePageManager::remove | ( | const OStorePageKey & | rKey | ) |
remove.
Definition at line 425 of file storpage.cxx.
References store::OStorePageBIOS::acquirePage(), store::OStoreDirectoryPageObject::attrib(), store::OStoreDirectoryPageData::capacity(), store::OStoreDirectoryPageObject::dataLength(), find_lookup(), store::OStorePageBIOS::free(), store::OStorePageObject::get(), i, isValid(), store::OStorePageBIOS::isWriteable(), store::OStorePageBIOS::loadObjectAt(), store::OStorePageLink::location(), store::OStorePageObject::location(), store::PageData::m_aDescr, store::OStoreBTreeEntry::m_aLink, store::OStoreBTreeEntry::m_nAttrib, store::OStoreDirectoryPageData::m_pData, store::ntohl(), ReadWrite, store::OStorePageBIOS::releasePage(), remove_Impl(), store::OStoreDirectoryPageData::scope(), store::OStoreDirectoryPageData::SCOPE_EXTERNAL, STORE_ATTRIB_ISLINK, store_E_AccessViolation, store_E_InvalidAccess, store_E_None, and store::OStoreDirectoryPageObject::truncate().
|
private |
remove (possibly down from root).
Definition at line 138 of file storpage.cxx.
References store::OStoreBTreeEntry::compare(), store::OStoreBTreeEntry::COMPARE_GREATER, store::OStoreBTreeEntry::COMPARE_LESS, store::OStorePageObject::get(), i, store::OStorePageBIOS::loadObjectAt(), m_aRoot, n, store::OStoreBTreeNodeObject::remove(), result, SAL_WARN_IF, store_E_None, store_E_NotExists, store_E_Unknown, STORE_PAGE_NULL, and store::PageHolderObject< T >::swap().
Referenced by remove().
|
private |
Definition at line 373 of file storpage.cxx.
References store::OStorePageBIOS::allocate(), store::OStoreBTreeRootObject::find_insert(), store::OStorePageObject::get(), i, store::OStorePageLink::location(), store::OStorePageObject::location(), store::OStoreBTreeEntry::m_aLink, m_aRoot, store::OStorePageBIOS::saveObjectAt(), store_E_AlreadyExists, store_E_None, and STORE_PAGE_NULL.
Referenced by iget().
|
friend |
IStoreHandle query() template function specialization.
|
private |
Representation.
Definition at line 111 of file storpage.hxx.
Referenced by find_lookup(), initialize(), iterate(), remove_Impl(), and save_dirpage_Impl().
|
staticprivate |
IStoreHandle TypeId.
Definition at line 102 of file storpage.hxx.
Referenced by isKindOf(), and store::query().