Couchbase Lite C
Couchbase Lite C API
Loading...
Searching...
No Matches
FLSlice.h File Reference
#include "CompilerSupport.h"
#include <stdbool.h>
#include <stdint.h>
#include <stdlib.h>
#include <string.h>

Go to the source code of this file.

Data Structures

struct  FLSlice
 A simple reference to a block of memory. More...
struct  FLSliceResult
 A heap-allocated block of memory returned from an API call. More...

Macros

#define _FLSLICE_H
#define kFLSliceNull   ((FLSlice){NULL, 0})
 A convenient constant denoting a null slice.
#define FLSTR(STR)
 Macro version of FLStr, for use in initializing compile-time constants.

Typedefs

typedef FLSlice FLHeapSlice
 A heap-allocated, reference-counted slice.
typedef FLSlice FLString
typedef FLSliceResult FLStringResult

Functions

FLPURE int FLMemCmp (const void *FL_NULLABLE a, const void *FL_NULLABLE b, size_t size)
 Exactly like memcmp, but safely handles the case where a or b is NULL and size is 0 (by returning 0), instead of producing "undefined behavior" as per the C spec.
void FLMemCpy (void *FL_NULLABLE dst, const void *FL_NULLABLE src, size_t size)
 Exactly like memcmp, but safely handles the case where dst or src is NULL and size is 0 (as a no-op), instead of producing "undefined behavior" as per the C spec.
FLSlice FLStr (const char *FL_NULLABLE str LIFETIMEBOUND)
 Returns a slice pointing to the contents of a C string.
FLEECE_PUBLIC bool FLSlice_Equal (FLSlice a, FLSlice b) FLPURE
 Equality test of two slices.
FLEECE_PUBLIC int FLSlice_Compare (FLSlice, FLSlice) FLPURE
 Lexicographic comparison of two slices; basically like memcmp(), but taking into account differences in length.
FLEECE_PUBLIC uint32_t FLSlice_Hash (FLSlice s) FLPURE
 Computes a 32-bit hash of a slice's data, suitable for use in hash tables.
FLEECE_PUBLIC bool FLSlice_ToCString (FLSlice s, char *buffer, size_t capacity)
 Copies a slice to a buffer, adding a trailing zero byte to make it a valid C string.
FLEECE_PUBLIC FLSliceResult FLSliceResult_New (size_t)
 Allocates an FLSliceResult of the given size, without initializing the buffer.
FLEECE_PUBLIC FLSliceResult FLSlice_Copy (FLSlice)
 Allocates an FLSliceResult, copying the given slice.
FLSliceResult FLSliceResult_CreateWith (const void *FL_NULLABLE bytes, size_t size)
 Allocates an FLSliceResult, copying size bytes starting at buf.
FLEECE_PUBLIC void _FLBuf_Retain (const void *FL_NULLABLE)
FLEECE_PUBLIC void _FLBuf_Release (const void *FL_NULLABLE)
FLSliceResult FLSliceResult_Retain (FLSliceResult s)
 Increments the ref-count of a FLSliceResult.
void FLSliceResult_Release (FLSliceResult s)
 Decrements the ref-count of a FLSliceResult, freeing its memory if it reached zero.
FLSlice FLSliceResult_AsSlice (FLSliceResult sr LIFETIMEBOUND)
 Type-casts a FLSliceResult to FLSlice, since C doesn't know it's a subclass.
FLEECE_PUBLIC void FL_WipeMemory (void *dst, size_t size)
 Writes zeroes to size bytes of memory starting at dst.

Macro Definition Documentation

◆ _FLSLICE_H

#define _FLSLICE_H