Couchbase Lite C
Couchbase Lite C API
|
Go to the source code of this file.
Data Structures | |
struct | FLArrayIterator |
Opaque array iterator. More... | |
struct | FLDictIterator |
Opaque dictionary iterator. More... | |
struct | FLDictKey |
Opaque key for a dictionary. More... | |
struct | FLPathComponent |
Macros | |
#define | _FLEECE_H |
#define | FLEECE_PUBLIC |
#define | FLTimestampNone INT64_MIN |
A value representing a missing timestamp; returned when a date cannot be parsed. More... | |
Typedefs | |
typedef const struct _FLValue * | FLValue |
A reference to a value of any type. More... | |
typedef const struct _FLArray * | FLArray |
A reference to an array value. More... | |
typedef const struct _FLDict * | FLDict |
A reference to a dictionary (map) value. More... | |
typedef struct _FLSlot * | FLSlot |
A reference to a mutable array/dict item. More... | |
typedef struct _FLArray * | FLMutableArray |
A reference to a mutable array. More... | |
typedef struct _FLDict * | FLMutableDict |
A reference to a mutable dictionary. More... | |
typedef struct _FLEncoder * | FLEncoder |
A reference to an encoder. More... | |
typedef int64_t | FLTimestamp |
A timestamp, expressed as milliseconds since the Unix epoch (1-1-1970 midnight UTC.) More... | |
typedef struct _FLDeepIterator * | FLDeepIterator |
A reference to a deep iterator. More... | |
typedef struct _FLKeyPath * | FLKeyPath |
A reference to a key path. More... | |
typedef bool(* | FLSharedKeysReadCallback) (void *context, FLSharedKeys) |
typedef struct _FLSharedKeyScope * | FLSharedKeyScope |
Enumerations | |
enum | FLError { kFLNoError = 0 , kFLMemoryError , kFLOutOfRange , kFLInvalidData , kFLEncodeError , kFLJSONError , kFLUnknownValue , kFLInternalError , kFLNotFound , kFLSharedKeysStateError , kFLPOSIXError , kFLUnsupported } |
Error codes returned from some API calls. More... | |
enum | FLValueType { kFLUndefined = -1 , kFLNull = 0 , kFLBoolean , kFLNumber , kFLString , kFLData , kFLArray , kFLDict } |
Types of Fleece values. More... | |
Functions | |
FLStringResult | FLValue_ToJSON (FLValue) |
Encodes a Fleece value as JSON (or a JSON fragment.) Any Data values will become base64-encoded JSON strings. More... | |
FLStringResult | FLValue_ToJSON5 (FLValue v) |
Encodes a Fleece value as JSON5, a more lenient variant of JSON that allows dictionary keys to be unquoted if they're alphanumeric. More... | |
FLStringResult | FLValue_ToJSONX (FLValue v, bool json5, bool canonicalForm) |
Most general Fleece to JSON converter. More... | |
FLStringResult | FLJSON5_ToJSON (FLString json5, FLStringResult *outErrorMessage, size_t *outErrorPos, FLError *outError) |
Converts valid JSON5 https://json5.org to JSON. More... | |
FLValueType | FLValue_GetType (FLValue) FLPURE |
Returns the data type of an arbitrary Value. More... | |
bool | FLValue_IsInteger (FLValue) FLPURE |
Returns true if the value is non-NULL and represents an integer. More... | |
bool | FLValue_IsUnsigned (FLValue) FLPURE |
Returns true if the value is non-NULL and represents an integer >= 2^63. More... | |
bool | FLValue_IsDouble (FLValue) |
Returns true if the value is non-NULL and represents a 64-bit floating-point number. More... | |
bool | FLValue_AsBool (FLValue) FLPURE |
Returns a value coerced to boolean. More... | |
int64_t | FLValue_AsInt (FLValue) FLPURE |
Returns a value coerced to an integer. More... | |
uint64_t | FLValue_AsUnsigned (FLValue) FLPURE |
Returns a value coerced to an unsigned integer. More... | |
float | FLValue_AsFloat (FLValue) FLPURE |
Returns a value coerced to a 32-bit floating point number. More... | |
double | FLValue_AsDouble (FLValue) FLPURE |
Returns a value coerced to a 32-bit floating point number. More... | |
FLString | FLValue_AsString (FLValue) FLPURE |
Returns the exact contents of a string value, or null for all other types. More... | |
FLTimestamp | FLValue_AsTimestamp (FLValue) FLPURE |
Converts a value to a timestamp, in milliseconds since Unix epoch, or INT64_MIN on failure. More... | |
FLSlice | FLValue_AsData (FLValue) FLPURE |
Returns the exact contents of a data value, or null for all other types. More... | |
FLArray | FLValue_AsArray (FLValue) FLPURE |
If a FLValue represents an array, returns it cast to FLArray, else NULL. More... | |
FLDict | FLValue_AsDict (FLValue) FLPURE |
If a FLValue represents a dictionary, returns it as an FLDict, else NULL. More... | |
FLStringResult | FLValue_ToString (FLValue) |
Returns a string representation of any scalar value. More... | |
bool | FLValue_IsEqual (FLValue v1, FLValue v2) FLPURE |
Compares two values for equality. More... | |
bool | FLValue_IsMutable (FLValue) FLPURE |
Returns true if the value is mutable. More... | |
FLValue | FLValue_NewString (FLString) |
Allocates a string value on the heap. More... | |
FLValue | FLValue_NewData (FLSlice) |
Allocates a data/blob value on the heap. More... | |
uint32_t | FLArray_Count (FLArray) FLPURE |
Returns the number of items in an array, or 0 if the pointer is NULL. More... | |
bool | FLArray_IsEmpty (FLArray) FLPURE |
Returns true if an array is empty (or NULL). More... | |
FLMutableArray | FLArray_AsMutable (FLArray) FLPURE |
If the array is mutable, returns it cast to FLMutableArray, else NULL. More... | |
FLValue | FLArray_Get (FLArray, uint32_t index) FLPURE |
Returns an value at an array index, or NULL if the index is out of range. More... | |
uint32_t | FLDict_Count (FLDict) FLPURE |
Returns the number of items in a dictionary, or 0 if the pointer is NULL. More... | |
bool | FLDict_IsEmpty (FLDict) FLPURE |
Returns true if a dictionary is empty (or NULL). More... | |
FLMutableDict | FLDict_AsMutable (FLDict) FLPURE |
If the dictionary is mutable, returns it cast to FLMutableDict, else NULL. More... | |
FLValue | FLDict_Get (FLDict, FLSlice keyString) FLPURE |
Looks up a key in a dictionary, returning its value. More... | |
FLDeepIterator | FLDeepIterator_New (FLValue) |
Creates a FLDeepIterator to iterate over a dictionary. More... | |
void | FLDeepIterator_Free (FLDeepIterator) |
FLValue | FLDeepIterator_GetValue (FLDeepIterator) |
Returns the current value being iterated over. More... | |
FLValue | FLDeepIterator_GetParent (FLDeepIterator) |
Returns the parent/container of the current value, or NULL at the end of iteration. More... | |
FLSlice | FLDeepIterator_GetKey (FLDeepIterator) |
Returns the key of the current value in its parent, or an empty slice if not in a dictionary. More... | |
uint32_t | FLDeepIterator_GetIndex (FLDeepIterator) |
Returns the array index of the current value in its parent, or 0 if not in an array. More... | |
size_t | FLDeepIterator_GetDepth (FLDeepIterator) |
Returns the current depth in the hierarchy, starting at 1 for the top-level children. More... | |
void | FLDeepIterator_SkipChildren (FLDeepIterator) |
Tells the iterator to skip the children of the current value. More... | |
bool | FLDeepIterator_Next (FLDeepIterator) |
Advances the iterator to the next value, or returns false if at the end. More... | |
void | FLDeepIterator_GetPath (FLDeepIterator, FLPathComponent **outPath, size_t *outDepth) |
Returns the path as an array of FLPathComponents. More... | |
FLSliceResult | FLDeepIterator_GetPathString (FLDeepIterator) |
Returns the current path in JavaScript format. More... | |
FLSliceResult | FLDeepIterator_GetJSONPointer (FLDeepIterator) |
Returns the current path in JSONPointer format (RFC 6901). More... | |
FLKeyPath | FLKeyPath_New (FLSlice specifier, FLError *error) |
Creates a new FLKeyPath object by compiling a path specifier string. More... | |
void | FLKeyPath_Free (FLKeyPath) |
Frees a compiled FLKeyPath object. More... | |
FLValue | FLKeyPath_Eval (FLKeyPath, FLValue root) |
Evaluates a compiled key-path for a given Fleece root object. More... | |
FLValue | FLKeyPath_EvalOnce (FLSlice specifier, FLValue root, FLError *error) |
Evaluates a key-path from a specifier string, for a given Fleece root object. More... | |
FLStringResult | FLKeyPath_ToString (FLKeyPath path) |
Returns a path in string form. More... | |
bool | FLKeyPath_Equals (FLKeyPath path1, FLKeyPath path2) |
Equality test. More... | |
bool | FLKeyPath_GetElement (FLKeyPath, size_t i, FLSlice *outDictKey, int32_t *outArrayIndex) |
Returns an element of a path, either a key or an array index. More... | |
FLSharedKeys | FLSharedKeys_New (void) |
Creates a new empty FLSharedKeys object, which must eventually be released. More... | |
FLSharedKeys | FLSharedKeys_NewWithRead (FLSharedKeysReadCallback, void *context) |
FLSliceResult | FLSharedKeys_GetStateData (FLSharedKeys) |
Returns a data blob containing the current state (all the keys and their integers.) More... | |
bool | FLSharedKeys_LoadStateData (FLSharedKeys, FLSlice) |
Updates an FLSharedKeys with saved state data created by FLSharedKeys_GetStateData. More... | |
void | FLSharedKeys_WriteState (FLSharedKeys, FLEncoder) |
Writes the current state to a Fleece encoder as a single value, which can later be decoded and passed to FLSharedKeys_LoadState. More... | |
bool | FLSharedKeys_LoadState (FLSharedKeys, FLValue) |
Updates an FLSharedKeys object with saved state, a Fleece value previously written by FLSharedKeys_WriteState. More... | |
int | FLSharedKeys_Encode (FLSharedKeys, FLString, bool add) |
Maps a key string to a number in the range [0...2047], or returns -1 if it isn't mapped. More... | |
FLString | FLSharedKeys_Decode (FLSharedKeys, int key) |
Returns the key string that maps to the given integer key , else NULL. More... | |
unsigned | FLSharedKeys_Count (FLSharedKeys) |
Returns the number of keys in the mapping. More... | |
void | FLSharedKeys_RevertToCount (FLSharedKeys, unsigned oldCount) |
Reverts an FLSharedKeys by "forgetting" any keys added since it had the count oldCount . More... | |
FLSharedKeys | FLSharedKeys_Retain (FLSharedKeys) |
Increments the reference count of an FLSharedKeys. More... | |
void | FLSharedKeys_Release (FLSharedKeys) |
Decrements the reference count of an FLSharedKeys, freeing it when it reaches zero. More... | |
FLSharedKeyScope | FLSharedKeyScope_WithRange (FLSlice range, FLSharedKeys) |
void | FLSharedKeyScope_Free (FLSharedKeyScope) |
FLSliceResult | FLCreateJSONDelta (FLValue old, FLValue nuu) |
Returns JSON that encodes the changes to turn the value old into nuu . More... | |
bool | FLEncodeJSONDelta (FLValue old, FLValue nuu, FLEncoder jsonEncoder) |
Writes JSON that describes the changes to turn the value old into nuu . More... | |
FLSliceResult | FLApplyJSONDelta (FLValue old, FLSlice jsonDelta, FLError *error) |
Applies the JSON data created by CreateJSONDelta to the value old , which must be equal to the old value originally passed to FLCreateJSONDelta , and returns a Fleece document equal to the original nuu value. More... | |
bool | FLEncodeApplyingJSONDelta (FLValue old, FLSlice jsonDelta, FLEncoder encoder) |
Applies the (parsed) JSON data created by CreateJSONDelta to the value old , which must be equal to the old value originally passed to FLCreateJSONDelta , and writes the corresponding nuu value to the encoder. More... | |
MUST_USE_RESULT FLSlot | FLMutableArray_Set (FLMutableArray, uint32_t index) |
Returns an FLSlot that refers to the given index of the given array. More... | |
MUST_USE_RESULT FLSlot | FLMutableArray_Append (FLMutableArray) |
Appends a null value to the array and returns an FLSlot that refers to that position. More... | |
MUST_USE_RESULT FLSlot | FLMutableDict_Set (FLMutableDict FL_NONNULL, FLString key) |
Returns an FLSlot that refers to the given key/value pair of the given dictionary. More... | |
void | FLSlot_SetNull (FLSlot) |
Stores a JSON null into a slot. More... | |
void | FLSlot_SetBool (FLSlot, bool) |
Stores a boolean into a slot. More... | |
void | FLSlot_SetInt (FLSlot, int64_t) |
Stores an integer into a slot. More... | |
void | FLSlot_SetUInt (FLSlot, uint64_t) |
Stores an unsigned int into a slot. More... | |
void | FLSlot_SetFloat (FLSlot, float) |
Stores a float into a slot. More... | |
void | FLSlot_SetDouble (FLSlot, double) |
Stores a double into a slot. More... | |
void | FLSlot_SetString (FLSlot, FLString) |
Stores a UTF-8 string into a slot. More... | |
void | FLSlot_SetData (FLSlot, FLSlice) |
Stores a data blob into a slot. More... | |
void | FLSlot_SetValue (FLSlot, FLValue) |
Stores an FLValue into a slot. More... | |
static void | FLSlot_SetArray (FLSlot slot, FLArray array) |
static void | FLSlot_SetDict (FLSlot slot, FLDict dict) |
Parsing And Converting Values Directly | |
FLValue | FLValue_FromData (FLSlice data, FLTrust) FLPURE |
Returns a pointer to the root value in the encoded data, or NULL if validation failed. More... | |
FLSliceResult | FLData_ConvertJSON (FLSlice json, FLError *outError) |
Directly converts JSON data to Fleece-encoded data. More... | |
FLStringResult | FLData_Dump (FLSlice data) |
Produces a human-readable dump of the Value encoded in the data. More... | |
Debugging Functions | |
const char * | FLDump (FLValue) |
Debugging function that returns a C string of JSON. More... | |
const char * | FLDumpData (FLSlice data) |
Debugging function that returns a C string of JSON. More... | |
Ref-counting (mutable values only) | |
FLValue | FLValue_Retain (FLValue) |
If this value is mutable (and thus heap-based) its ref-count is incremented. More... | |
void | FLValue_Release (FLValue) |
If this value is mutable (and thus heap-based) its ref-count is decremented, and if it reaches zero the value is freed. More... | |
static FLArray | FLArray_Retain (FLArray v) |
static void | FLArray_Release (FLArray v) |
static FLDict | FLDict_Retain (FLDict v) |
static void | FLDict_Release (FLDict v) |
Array iteration | |
Iterating an array typically looks like this: FLArrayIterator iter;
FLArrayIterator_Begin(theArray, &iter);
FLValue value;
while (NULL != (value = FLArrayIterator_GetValue(&iter))) {
// ...
FLArrayIterator_Next(&iter);
}
void FLArrayIterator_Begin(FLArray, FLArrayIterator *) Initializes a FLArrayIterator struct to iterate over an array. bool FLArrayIterator_Next(FLArrayIterator *) Advances the iterator to the next value, or returns false if at the end. FLValue FLArrayIterator_GetValue(const FLArrayIterator *) FLPURE Returns the current value being iterated over. | |
void | FLArrayIterator_Begin (FLArray, FLArrayIterator *) |
Initializes a FLArrayIterator struct to iterate over an array. More... | |
FLValue | FLArrayIterator_GetValue (const FLArrayIterator *) FLPURE |
Returns the current value being iterated over. More... | |
FLValue | FLArrayIterator_GetValueAt (const FLArrayIterator *, uint32_t offset) FLPURE |
Returns a value in the array at the given offset from the current value. More... | |
uint32_t | FLArrayIterator_GetCount (const FLArrayIterator *) FLPURE |
Returns the number of items remaining to be iterated, including the current one. More... | |
bool | FLArrayIterator_Next (FLArrayIterator *) |
Advances the iterator to the next value, or returns false if at the end. More... | |
Dict iteration | |
Iterating a dictionary typically looks like this: FLDictIterator iter;
FLDictIterator_Begin(theDict, &iter);
FLValue value;
while (NULL != (value = FLDictIterator_GetValue(&iter))) {
FLString key = FLDictIterator_GetKeyString(&iter);
// ...
FLDictIterator_Next(&iter);
}
void FLDictIterator_Begin(FLDict, FLDictIterator *) Initializes a FLDictIterator struct to iterate over a dictionary. FLString FLDictIterator_GetKeyString(const FLDictIterator *) Returns the current key's string value. bool FLDictIterator_Next(FLDictIterator *) Advances the iterator to the next value, or returns false if at the end. FLValue FLDictIterator_GetValue(const FLDictIterator *) FLPURE Returns the current value being iterated over. | |
void | FLDictIterator_Begin (FLDict, FLDictIterator *) |
Initializes a FLDictIterator struct to iterate over a dictionary. More... | |
FLValue | FLDictIterator_GetKey (const FLDictIterator *) FLPURE |
Returns the current key being iterated over. More... | |
FLString | FLDictIterator_GetKeyString (const FLDictIterator *) |
Returns the current key's string value. More... | |
FLValue | FLDictIterator_GetValue (const FLDictIterator *) FLPURE |
Returns the current value being iterated over. More... | |
uint32_t | FLDictIterator_GetCount (const FLDictIterator *) FLPURE |
Returns the number of items remaining to be iterated, including the current one. More... | |
bool | FLDictIterator_Next (FLDictIterator *) |
Advances the iterator to the next value, or returns false if at the end. More... | |
void | FLDictIterator_End (FLDictIterator *) |
Cleans up after an iterator. More... | |
Optimized Keys | |
FLDictKey | FLDictKey_Init (FLSlice string) |
Initializes an FLDictKey struct with a key string. More... | |
FLString | FLDictKey_GetString (const FLDictKey *) |
Returns the string value of the key (which it was initialized with.) More... | |
FLValue | FLDict_GetWithKey (FLDict, FLDictKey *) |
Looks up a key in a dictionary using an FLDictKey. More... | |
Mutable dictionaries | |
FLMutableDict | FLDict_MutableCopy (FLDict source, FLCopyFlags) |
Creates a new mutable Dict that's a copy of the source Dict. More... | |
FLMutableDict | FLMutableDict_New (void) |
Creates a new empty mutable Dict. More... | |
FLMutableDict | FLMutableDict_NewFromJSON (FLString json, FLError *outError) |
Creates a new mutable Dict from json. More... | |
static FLMutableDict | FLMutableDict_Retain (FLMutableDict d) |
Increments the ref-count of a mutable Dict. More... | |
static void | FLMutableDict_Release (FLMutableDict d) |
Decrements the refcount of (and possibly frees) a mutable Dict. More... | |
FLDict | FLMutableDict_GetSource (FLMutableDict) |
If the Dict was created by FLDict_MutableCopy, returns the original source Dict. More... | |
bool | FLMutableDict_IsChanged (FLMutableDict) |
Returns true if the Dict has been changed from the source it was copied from. More... | |
void | FLMutableDict_SetChanged (FLMutableDict, bool) |
Sets or clears the mutable Dict's "changed" flag. More... | |
void | FLMutableDict_Remove (FLMutableDict, FLString key) |
Removes the value for a key. More... | |
void | FLMutableDict_RemoveAll (FLMutableDict) |
Removes all keys and values. More... | |
FLMutableArray | FLMutableDict_GetMutableArray (FLMutableDict, FLString key) |
Convenience function for getting an array-valued property in mutable form. More... | |
FLMutableDict | FLMutableDict_GetMutableDict (FLMutableDict, FLString key) |
Convenience function for getting a dict-valued property in mutable form. More... | |
static void | FLMutableDict_SetNull (FLMutableDict, FLString key) |
Stores a JSON null value into a mutable dictionary. More... | |
static void | FLMutableDict_SetBool (FLMutableDict, FLString key, bool) |
Stores a boolean value into a mutable dictionary. More... | |
static void | FLMutableDict_SetInt (FLMutableDict, FLString key, int64_t) |
Stores an integer into a mutable dictionary. More... | |
static void | FLMutableDict_SetUInt (FLMutableDict, FLString key, uint64_t) |
Stores an unsigned integer into a mutable dictionary. More... | |
static void | FLMutableDict_SetFloat (FLMutableDict, FLString key, float) |
Stores a 32-bit floating-point number into a mutable dictionary. More... | |
static void | FLMutableDict_SetDouble (FLMutableDict, FLString key, double) |
Stores a 64-bit floating point number into a mutable dictionary. More... | |
static void | FLMutableDict_SetString (FLMutableDict, FLString key, FLString) |
Stores a UTF-8-encoded string into a mutable dictionary. More... | |
static void | FLMutableDict_SetData (FLMutableDict, FLString key, FLSlice) |
Stores a binary data blob into a mutable dictionary. More... | |
static void | FLMutableDict_SetValue (FLMutableDict, FLString key, FLValue) |
Stores a Fleece value into a mutable dictionary. More... | |
static void | FLMutableDict_SetArray (FLMutableDict, FLString key, FLArray) |
Stores a Fleece array into a mutable dictionary. More... | |
static void | FLMutableDict_SetDict (FLMutableDict, FLString key, FLDict) |
Stores a Fleece dictionary into a mutable dictionary. More... | |
Writing to the encoder | |
After an error occurs, the encoder will ignore all subsequent writes. | |
bool | FLEncoder_WriteNull (FLEncoder) |
Writes a null value to an encoder. More... | |
bool | FLEncoder_WriteUndefined (FLEncoder) |
Writes an undefined value to an encoder. More... | |
bool | FLEncoder_WriteBool (FLEncoder, bool) |
Writes a boolean value (true or false) to an encoder. More... | |
bool | FLEncoder_WriteInt (FLEncoder, int64_t) |
Writes an integer to an encoder. More... | |
bool | FLEncoder_WriteUInt (FLEncoder, uint64_t) |
Writes an unsigned integer to an encoder. More... | |
bool | FLEncoder_WriteFloat (FLEncoder, float) |
Writes a 32-bit floating point number to an encoder. More... | |
bool | FLEncoder_WriteDouble (FLEncoder, double) |
Writes a 64-bit floating point number to an encoder. More... | |
bool | FLEncoder_WriteString (FLEncoder, FLString) |
Writes a string to an encoder. More... | |
bool | FLEncoder_WriteDateString (FLEncoder encoder, FLTimestamp ts, bool asUTC) |
Writes a timestamp to an encoder, as an ISO-8601 date string. More... | |
bool | FLEncoder_WriteData (FLEncoder, FLSlice) |
Writes a binary data value (a blob) to an encoder. More... | |
bool | FLEncoder_WriteRaw (FLEncoder, FLSlice) |
Writes raw data directly to the encoded output. More... | |
bool | FLEncoder_BeginArray (FLEncoder, size_t reserveCount) |
Begins writing an array value to an encoder. More... | |
bool | FLEncoder_EndArray (FLEncoder) |
Ends writing an array value; pops back the previous encoding state. More... | |
bool | FLEncoder_BeginDict (FLEncoder, size_t reserveCount) |
Begins writing a dictionary value to an encoder. More... | |
bool | FLEncoder_WriteKey (FLEncoder, FLString) |
Specifies the key for the next value to be written to the current dictionary. More... | |
bool | FLEncoder_WriteKeyValue (FLEncoder, FLValue) |
Specifies the key for the next value to be written to the current dictionary. More... | |
bool | FLEncoder_EndDict (FLEncoder) |
Ends writing a dictionary value; pops back the previous encoding state. More... | |
bool | FLEncoder_WriteValue (FLEncoder, FLValue) |
Writes a Fleece Value to an Encoder. More... | |
intptr_t | FLEncoder_LastValueWritten (FLEncoder e) |
Returns an opaque reference to the last complete value written to the encoder, if possible. More... | |
void | FLEncoder_WriteValueAgain (FLEncoder e, intptr_t preWrittenValue) |
Writes another reference (a "pointer") to an already-written value, given a reference previously returned from FLEncoder_LastValueWritten. More... | |
FLSliceResult | FLEncoder_Snip (FLEncoder e) |
Returns the data written so far as a standalone Fleece document, whose root is the last value written. More... | |
bool | FLEncoder_ConvertJSON (FLEncoder, FLSlice json) |
Parses JSON data and writes the object(s) to the encoder. More... | |
Finishing up | |
size_t | FLEncoder_FinishItem (FLEncoder) |
Finishes encoding the current item, and returns its offset in the output data. More... | |
FLDoc | FLEncoder_FinishDoc (FLEncoder, FLError *) |
Ends encoding; if there has been no error, it returns the encoded Fleece data packaged in an FLDoc. More... | |
MUST_USE_RESULT FLSliceResult | FLEncoder_Finish (FLEncoder e, FLError *outError) |
Ends encoding; if there has been no error, it returns the encoded data, else null. More... | |
Error handling | |
FLError | FLEncoder_GetError (FLEncoder) |
Returns the error code of an encoder, or NoError (0) if there's no error. More... | |
const char * | FLEncoder_GetErrorMessage (FLEncoder) |
Returns the error message of an encoder, or NULL if there's no error. More... | |
Variables | |
FLEECE_PUBLIC const FLValue | kFLNullValue |
A constant null value (not a NULL pointer!) More... | |
FLEECE_PUBLIC const FLValue | kFLUndefinedValue |
A constant undefined value. More... | |
FLEECE_PUBLIC const FLArray | kFLEmptyArray |
FLEECE_PUBLIC const FLDict | kFLEmptyDict |
FLDoc | |
An FLDoc points to (and often owns) Fleece-encoded data and provides access to its Fleece values. | |
enum | FLTrust { kFLUntrusted , kFLTrusted } |
Specifies whether not input data is trusted to be 100% valid Fleece. More... | |
typedef struct _FLDoc * | FLDoc |
A reference to a document. More... | |
typedef struct _FLSharedKeys * | FLSharedKeys |
A reference to a shared-keys mapping. More... | |
FLDoc | FLDoc_FromResultData (FLSliceResult data, FLTrust, FLSharedKeys, FLSlice externData) |
Creates an FLDoc from Fleece-encoded data that's been returned as a result from FLSlice_Copy or other API. More... | |
FLDoc | FLDoc_FromJSON (FLSlice json, FLError *outError) |
Creates an FLDoc from JSON-encoded data. More... | |
void | FLDoc_Release (FLDoc) |
Releases a reference to an FLDoc. More... | |
FLDoc | FLDoc_Retain (FLDoc) |
Adds a reference to an FLDoc. More... | |
FLSlice | FLDoc_GetData (FLDoc) FLPURE |
Returns the encoded Fleece data backing the document. More... | |
FLSliceResult | FLDoc_GetAllocedData (FLDoc) FLPURE |
Returns the FLSliceResult data owned by the document, if any, else a null slice. More... | |
FLValue | FLDoc_GetRoot (FLDoc) FLPURE |
Returns the root value in the FLDoc, usually an FLDict. More... | |
FLSharedKeys | FLDoc_GetSharedKeys (FLDoc) FLPURE |
Returns the FLSharedKeys used by this FLDoc, as specified when it was created. More... | |
bool | FLDoc_SetAssociated (FLDoc doc, void *pointer, const char *type) |
Associates an arbitrary pointer value with a document, and thus its contained values. More... | |
void * | FLDoc_GetAssociated (FLDoc doc, const char *type) FLPURE |
Returns the pointer associated with the document. More... | |
FLDoc | FLValue_FindDoc (FLValue) FLPURE |
Looks up the Doc containing the Value, or NULL if the Value was created without a Doc. More... | |
Mutable Arrays | |
enum | FLCopyFlags { kFLDefaultCopy = 0 , kFLDeepCopy = 1 , kFLCopyImmutables = 2 , kFLDeepCopyImmutables = (kFLDeepCopy | kFLCopyImmutables) } |
FLMutableArray | FLArray_MutableCopy (FLArray, FLCopyFlags) |
Creates a new mutable Array that's a copy of the source Array. More... | |
FLMutableArray | FLMutableArray_New (void) |
Creates a new empty mutable Array. More... | |
FLMutableArray | FLMutableArray_NewFromJSON (FLString json, FLError *outError) |
Creates a new mutable Array from JSON. More... | |
static FLMutableArray | FLMutableArray_Retain (FLMutableArray d) |
Increments the ref-count of a mutable Array. More... | |
static void | FLMutableArray_Release (FLMutableArray d) |
Decrements the refcount of (and possibly frees) a mutable Array. More... | |
FLArray | FLMutableArray_GetSource (FLMutableArray) |
If the Array was created by FLArray_MutableCopy, returns the original source Array. More... | |
bool | FLMutableArray_IsChanged (FLMutableArray) |
Returns true if the Array has been changed from the source it was copied from. More... | |
void | FLMutableArray_SetChanged (FLMutableArray, bool) |
Sets or clears the mutable Array's "changed" flag. More... | |
void | FLMutableArray_Insert (FLMutableArray array, uint32_t firstIndex, uint32_t count) |
Inserts a contiguous range of JSON null values into the array. More... | |
void | FLMutableArray_Remove (FLMutableArray array, uint32_t firstIndex, uint32_t count) |
Removes contiguous items from the array. More... | |
void | FLMutableArray_Resize (FLMutableArray array, uint32_t size) |
Changes the size of an array. More... | |
FLMutableArray | FLMutableArray_GetMutableArray (FLMutableArray, uint32_t index) |
Convenience function for getting an array-valued property in mutable form. More... | |
FLMutableDict | FLMutableArray_GetMutableDict (FLMutableArray, uint32_t index) |
Convenience function for getting an array-valued property in mutable form. More... | |
static void | FLMutableArray_SetNull (FLMutableArray, uint32_t index) |
Stores a JSON null value into an array. More... | |
static void | FLMutableArray_SetBool (FLMutableArray, uint32_t index, bool) |
Stores a boolean value into an array. More... | |
static void | FLMutableArray_SetInt (FLMutableArray, uint32_t index, int64_t) |
Stores an integer into an array. More... | |
static void | FLMutableArray_SetUInt (FLMutableArray, uint32_t index, uint64_t) |
Stores an unsigned integer into an array. More... | |
static void | FLMutableArray_SetFloat (FLMutableArray, uint32_t index, float) |
Stores a 32-bit floating-point number into an array. More... | |
static void | FLMutableArray_SetDouble (FLMutableArray, uint32_t index, double) |
Stores a 64-bit floating point number into an array. More... | |
static void | FLMutableArray_SetString (FLMutableArray, uint32_t index, FLString) |
Stores a UTF-8-encoded string into an array. More... | |
static void | FLMutableArray_SetData (FLMutableArray, uint32_t index, FLSlice) |
Stores a binary data blob into an array. More... | |
static void | FLMutableArray_SetValue (FLMutableArray, uint32_t index, FLValue) |
Stores a Fleece value into an array. More... | |
static void | FLMutableArray_SetArray (FLMutableArray, uint32_t index, FLArray) |
Stores a Fleece array into an array. More... | |
static void | FLMutableArray_SetDict (FLMutableArray, uint32_t index, FLDict) |
Stores a Fleece dictionary into an array. More... | |
static void | FLMutableArray_AppendNull (FLMutableArray) |
Appends a JSON null value to an array. More... | |
static void | FLMutableArray_AppendBool (FLMutableArray, bool) |
Appends a boolean value to an array. More... | |
static void | FLMutableArray_AppendInt (FLMutableArray, int64_t) |
Appends an integer to an array. More... | |
static void | FLMutableArray_AppendUInt (FLMutableArray, uint64_t) |
Appends an unsigned integer to an array. More... | |
static void | FLMutableArray_AppendFloat (FLMutableArray, float) |
Appends a 32-bit floating-point number to an array. More... | |
static void | FLMutableArray_AppendDouble (FLMutableArray, double) |
Appends a 64-bit floating point number to an array. More... | |
static void | FLMutableArray_AppendString (FLMutableArray, FLString) |
Appends a UTF-8-encoded string to an array. More... | |
static void | FLMutableArray_AppendData (FLMutableArray, FLSlice) |
Appends a binary data blob to an array. More... | |
static void | FLMutableArray_AppendValue (FLMutableArray, FLValue) |
Appends a Fleece value to an array. More... | |
static void | FLMutableArray_AppendArray (FLMutableArray, FLArray) |
Appends a Fleece array to an array. More... | |
static void | FLMutableArray_AppendDict (FLMutableArray, FLDict) |
Appends a Fleece dictionary to an array. More... | |
Setup and configuration | |
enum | FLEncoderFormat { kFLEncodeFleece , kFLEncodeJSON , kFLEncodeJSON5 } |
Output formats a FLEncoder can generate. More... | |
FLEncoder | FLEncoder_New (void) |
Creates a new encoder, for generating Fleece data. More... | |
FLEncoder | FLEncoder_NewWithOptions (FLEncoderFormat format, size_t reserveSize, bool uniqueStrings) |
Creates a new encoder, allowing some options to be customized. More... | |
FLEncoder | FLEncoder_NewWritingToFile (FILE *, bool uniqueStrings) |
Creates a new Fleece encoder that writes to a file, not to memory. More... | |
void | FLEncoder_Free (FLEncoder) |
Frees the space used by an encoder. More... | |
void | FLEncoder_SetSharedKeys (FLEncoder, FLSharedKeys) |
Tells the encoder to use a shared-keys mapping when encoding dictionary keys. More... | |
void | FLEncoder_SetExtraInfo (FLEncoder, void *info) |
Associates an arbitrary user-defined value with the encoder. More... | |
void * | FLEncoder_GetExtraInfo (FLEncoder) |
Returns the user-defined value associated with the encoder; NULL by default. More... | |
void | FLEncoder_Amend (FLEncoder e, FLSlice base, bool reuseStrings, bool externPointers) |
Tells the encoder to logically append to the given Fleece document, rather than making a standalone document. More... | |
FLSlice | FLEncoder_GetBase (FLEncoder) |
Returns the base value passed to FLEncoder_Amend. More... | |
void | FLEncoder_SuppressTrailer (FLEncoder) |
Tells the encoder not to write the two-byte Fleece trailer at the end of the data. More... | |
void | FLEncoder_Reset (FLEncoder) |
Resets the state of an encoder without freeing it. More... | |
size_t | FLEncoder_BytesWritten (FLEncoder) |
Returns the number of bytes encoded so far. More... | |
size_t | FLEncoder_GetNextWritePos (FLEncoder) |
Returns the byte offset in the encoded data where the next value will be written. More... | |
#define _FLEECE_H |
#define FLEECE_PUBLIC |