23#include <rtl/string.hxx>
43template<
class store_handle_type>
47 explicit OStoreHandle (store_handle_type * pHandle)
51 static store_handle_type * SAL_CALL
query (
void * pHandle)
55 static_cast<store_handle_type*
>(
nullptr));
103 OSL_ASSERT(xLockBytes.is());
109 eErrCode = xManager->initialize (
116 *phFile = xManager.get();
121 rtl_uString *pFilename,
123 sal_uInt16 nPageSize,
130 if (!(pFilename && phFile))
138 OSL_ASSERT(xLockBytes.is());
144 eErrCode = xManager->initialize (
145 &*xLockBytes, eAccessMode, nPageSize);
151 *phFile = xManager.get();
176 OStoreHandle<OStorePageManager> xManager (
181 return xManager->flush();
186 rtl_uString
const *pPath,
187 rtl_uString
const *pName,
194 *phDirectory =
nullptr;
196 OStoreHandle<OStorePageManager> xManager (
201 if (!(pPath &&
pName && phDirectory))
205 if (!xDirectory.is())
208 OString aPath (pPath->buffer, pPath->length, RTL_TEXTENCODING_UTF8);
211 eErrCode = xDirectory->create (&*xManager, aPath.pData,
aName.pData, eAccessMode);
215 xDirectory->acquire();
217 *phDirectory = xDirectory.get();
226 OStoreHandle<OStoreDirectory_Impl> xDirectory (
228 if (!xDirectory.is())
238 pFindData->m_nReserved = sal_uInt32(~0);
239 return xDirectory->iterate (*pFindData);
247 OStoreHandle<OStoreDirectory_Impl> xDirectory (
249 if (!xDirectory.is())
256 if (!pFindData->m_nReserved)
260 pFindData->m_nReserved -= 1;
261 return xDirectory->iterate (*pFindData);
266 rtl_uString
const *pPath,
267 rtl_uString
const *pName,
276 OStoreHandle<OStorePageManager> xManager (
281 if (!(pPath &&
pName && phStream))
285 if (!xLockBytes.is())
288 OString aPath (pPath->buffer, pPath->length, RTL_TEXTENCODING_UTF8);
291 eErrCode = xLockBytes->create (&*xManager, aPath.pData,
aName.pData, eAccessMode);
295 xLockBytes->acquire();
297 *phStream = xLockBytes.get();
312 OStoreHandle<OStoreLockBytes> xLockBytes (
314 if (!xLockBytes.is())
317 if (!(pBuffer && pnDone))
320 return xLockBytes->readAt (nOffset, pBuffer, nBytes, *pnDone);
331 OStoreHandle<OStoreLockBytes> xLockBytes (
333 if (!xLockBytes.is())
336 if (!(pBuffer && pnDone))
339 return xLockBytes->writeAt (nOffset, pBuffer, nBytes, *pnDone);
344 rtl_uString
const *pPath,
345 rtl_uString
const *pName
350 OStoreHandle<OStorePageManager> xManager (
355 if (!(pPath &&
pName))
359 OString aPath (pPath->buffer, pPath->length, RTL_TEXTENCODING_UTF8);
363 eErrCode = OStorePageManager::namei (aPath.pData,
aName.pData, aKey);
368 return xManager->remove (aKey);
Old OStorePageCache implementation.
storeError FileLockBytes_createInstance(rtl::Reference< ILockBytes > &rxLockBytes, rtl_uString *pFilename, storeAccessMode eAccessMode)
storeError MemoryLockBytes_createInstance(rtl::Reference< ILockBytes > &rxLockBytes)
store_handle_type *SAL_CALL query(OStoreObject *pHandle, store_handle_type *)
Template helper function as dynamic_cast replacement.
storeError store_remove(storeFileHandle Handle, rtl_uString const *pPath, rtl_uString const *pName) SAL_THROW_EXTERN_C()
Remove a file entry.
storeError store_acquireHandle(storeHandle Handle) SAL_THROW_EXTERN_C()
Acquire a Handle.
storeError store_findFirst(storeDirectoryHandle Handle, storeFindData *pFindData) SAL_THROW_EXTERN_C()
Find first directory entry.
storeError store_releaseHandle(storeHandle Handle) SAL_THROW_EXTERN_C()
Release a Handle.
storeError store_readStream(storeStreamHandle Handle, sal_uInt32 nOffset, void *pBuffer, sal_uInt32 nBytes, sal_uInt32 *pnDone) SAL_THROW_EXTERN_C()
Read from a stream.
storeError store_openStream(storeFileHandle hFile, rtl_uString const *pPath, rtl_uString const *pName, storeAccessMode eAccessMode, storeStreamHandle *phStream) SAL_THROW_EXTERN_C()
Open a stream.
storeError store_findNext(storeDirectoryHandle Handle, storeFindData *pFindData) SAL_THROW_EXTERN_C()
Find next directory entry.
storeError store_openDirectory(storeFileHandle hFile, rtl_uString const *pPath, rtl_uString const *pName, storeAccessMode eAccessMode, storeDirectoryHandle *phDirectory) SAL_THROW_EXTERN_C()
Open a directory.
storeError store_flushFile(storeFileHandle Handle) SAL_THROW_EXTERN_C()
Flush a file.
storeError store_createMemoryFile(sal_uInt16 nPageSize, storeFileHandle *phFile) SAL_THROW_EXTERN_C()
Open a temporary file in memory.
storeError store_closeFile(storeFileHandle Handle) SAL_THROW_EXTERN_C()
Close a file.
storeError store_writeStream(storeStreamHandle Handle, sal_uInt32 nOffset, const void *pBuffer, sal_uInt32 nBytes, sal_uInt32 *pnDone) SAL_THROW_EXTERN_C()
Write to a stream.
storeError store_openFile(rtl_uString *pFilename, storeAccessMode eAccessMode, sal_uInt16 nPageSize, storeFileHandle *phFile) SAL_THROW_EXTERN_C()
Open a file.
void * storeHandle
Handle opaque type.
void * storeStreamHandle
Stream Handle opaque type.
void * storeDirectoryHandle
Directory Handle opaque type.
void * storeFileHandle
File Handle opaque type.
storeAccessMode
Access Mode enumeration.
storeError
Error Code enumeration.
@ store_E_InvalidParameter
#define SAL_THROW_EXTERN_C()