LiteCore
Couchbase Lite cross-platform core implementation
Loading...
Searching...
No Matches
c4BlobStore.h File Reference
#include "c4BlobStoreTypes.h"
#include "c4DatabaseTypes.h"
#include <stdio.h>

Go to the source code of this file.

Functions

Blob Keys
CBL_CORE_API bool c4blob_keyFromString (C4String str, C4BlobKey *)
 Decodes a string of the form "sha1-"+base64 into a raw key.
 
CBL_CORE_API C4StringResult c4blob_keyToString (C4BlobKey)
 Encodes a blob key to a string of the form "sha1-"+base64.
 
Blob Store API
CBL_CORE_API C4BlobStorec4db_getBlobStore (C4Database *db, C4Error *outError)
 Returns the BlobStore associated with a bundled database.
 
NODISCARD CBL_CORE_API C4BlobStorec4blob_openStore (C4String dirPath, C4DatabaseFlags flags, const C4EncryptionKey *encryptionKey, C4Error *outError)
 Opens a BlobStore in a directory.
 
CBL_CORE_API void c4blob_freeStore (C4BlobStore *)
 Closes/frees a BlobStore.
 
CBL_CORE_API bool c4blob_deleteStore (C4BlobStore *, C4Error *)
 Deletes the BlobStore's blobs and directory, and (if successful) frees the object.
 
Blob API
CBL_CORE_API int64_t c4blob_getSize (C4BlobStore *, C4BlobKey)
 Gets the content size of a blob given its key.
 
CBL_CORE_API C4SliceResult c4blob_getContents (C4BlobStore *, C4BlobKey, C4Error *)
 Reads the entire contents of a blob into memory.
 
CBL_CORE_API C4StringResult c4blob_getFilePath (C4BlobStore *, C4BlobKey, C4Error *)
 Returns the path of the file that stores the blob, if possible.
 
NODISCARD CBL_CORE_API C4BlobKey c4blob_computeKey (C4Slice contents)
 Derives the key of the given data, without storing it.
 
NODISCARD CBL_CORE_API bool c4blob_create (C4BlobStore *store, C4Slice contents, const C4BlobKey *expectedKey, C4BlobKey *outKey, C4Error *error)
 Stores a blob.
 
NODISCARD CBL_CORE_API bool c4blob_delete (C4BlobStore *, C4BlobKey, C4Error *)
 Deletes a blob from the store given its key.
 
Streamed Reads
NODISCARD CBL_CORE_API C4ReadStreamc4blob_openReadStream (C4BlobStore *, C4BlobKey, C4Error *)
 Opens a blob for reading, as a random-access byte stream.
 
NODISCARD CBL_CORE_API size_t c4stream_read (C4ReadStream *stream, void *buffer, size_t maxBytesToRead, C4Error *error)
 Reads from an open stream.
 
CBL_CORE_API int64_t c4stream_getLength (C4ReadStream *, C4Error *)
 Returns the exact length in bytes of the stream.
 
NODISCARD CBL_CORE_API bool c4stream_seek (C4ReadStream *, uint64_t position, C4Error *)
 Moves to a random location in the stream; the next c4stream_read call will read from that location.
 
Streamed Writes
NODISCARD CBL_CORE_API C4WriteStreamc4blob_openWriteStream (C4BlobStore *, C4Error *)
 Opens a write stream for creating a new blob.
 
NODISCARD CBL_CORE_API bool c4stream_write (C4WriteStream *, const void *bytes, size_t length, C4Error *)
 Writes data to a stream.
 
CBL_CORE_API uint64_t c4stream_bytesWritten (C4WriteStream *)
 Returns the number of bytes written to the stream.
 
NODISCARD CBL_CORE_API C4BlobKey c4stream_computeBlobKey (C4WriteStream *)
 Computes the blob-key (digest) of the data written to the stream.
 
NODISCARD CBL_CORE_API bool c4stream_install (C4WriteStream *, const C4BlobKey *expectedKey, C4Error *)
 Adds the data written to the stream as a finished blob to the store.