#include <flaim.h>
Public Member Functions | |
void * | operator new (FLMSIZET uiSize) throw () |
Overloaded new operator for FlmRecord objects. | |
void * | operator new (FLMSIZET uiSize, const char *pszFile, int iLine) throw () |
Overloaded new operator for ::FlmRecord objects (with source file and line number). | |
void * | operator new[] (FLMSIZET uiSize) throw () |
Overloaded new operator (array) for FlmRecord objects. | |
void * | operator new[] (FLMSIZET uiSize, const char *pszFile, int iLine) throw () |
Overloaded new operator (array) for FlmRecord objects (with source file and line number). | |
void | operator delete (void *ptr) |
Overloaded delete operator for FlmRecord objects. Pointer to FlmRecord object being freed. | |
void | operator delete[] (void *ptr) |
Overloaded delete operator (array) for FlmRecord objects. Pointer to array of FlmRecord objects being freed. | |
FLMINT FLMAPI | AddRef (void) |
Increment the reference count for this FlmRecord object. | |
FINLINE FLMINT FLMAPI | Release (void) |
Decrement the reference count for this FlmRecord object. | |
FlmRecord * | copy (void) |
Make a writeable copy of this FlmRecord object. | |
RCODE | clear (FLMBOOL bReleaseMemory=FALSE) |
Clear all fields in this FlmRecord object. | |
RCODE | getINT (void *pvField, FLMINT *piNumber) |
Get a field's value as a FLMINT. Data conversions will be done if the field is a FLM_CONTEXT_TYPE or FLM_TEXT_TYPE. | |
RCODE | getINT32 (void *pvField, FLMINT32 *pi32Number) |
Get a field's value as a FLMINT32. Data conversions will be done if the field is a FLM_CONTEXT_TYPE or FLM_TEXT_TYPE. | |
RCODE | getINT64 (void *pvField, FLMINT64 *pi64Number) |
Get a field's value as a FLMINT64. Data conversions will be done if the field is a FLM_CONTEXT_TYPE or FLM_TEXT_TYPE. | |
RCODE | getUINT (void *pvField, FLMUINT *puiNumber) |
Get a field's value as a FLMUINT. Data conversions will be done if the field is a FLM_CONTEXT_TYPE or FLM_TEXT_TYPE. | |
RCODE | getUINT32 (void *pvField, FLMUINT32 *pui32Number) |
Get a field's value as a FLMUINT32. Data conversions will be done if the field is a FLM_CONTEXT_TYPE or FLM_TEXT_TYPE. | |
RCODE | getUINT64 (void *pvField, FLMUINT64 *pui64Number) |
Get a field's value as a FLMUINT64. Data conversions will be done if the field is a FLM_CONTEXT_TYPE or FLM_TEXT_TYPE. | |
FINLINE RCODE | getUnicodeLength (void *pvField, FLMUINT *puiLength) |
Get the number of bytes needed to retrieve a field's value as a unicode string. | |
RCODE | getUnicode (void *pvField, FLMUNICODE *puzStrBuf, FLMUINT *puiStrBufLen) |
Get a field's value as a unicode string. Note that the field may be a FLM_NUMBER_TYPE, or FLM_TEXT_TYPE. | |
FINLINE RCODE | getNativeLength (void *pvField, FLMUINT *puiLength) |
Get the number of bytes needed to retrieve a field's value as a native string. | |
RCODE | getNative (void *pvField, char *pszStrBuf, FLMUINT *puiStrBufLen) |
Get a field's value as a native string. Note that the field may be a FLM_NUMBER_TYPE, or FLM_TEXT_TYPE. | |
FINLINE RCODE | getBinaryLength (void *pvField, FLMUINT *puiLength) |
Get the number of bytes needed to retrieve a field's value as binary data. | |
RCODE | getRecPointer (void *pvField, FLMUINT *puiRecPointer) |
Get the value for a FLM_CONTEXT_TYPE field as a FLMUINT. | |
FINLINE RCODE | getRecPointer32 (void *pvField, FLMUINT32 *pui32RecPointer) |
Get the value for a FLM_CONTEXT_TYPE field as a FLMUINT32. | |
RCODE | getBinary (void *pvField, void *pvBuf, FLMUINT *puiBufLen) |
Get a field's value as binary data. | |
RCODE | getBlob (void *pvField, FlmBlob **ppBlob) |
Get a field's value as a FlmBlob object. This method may only be used on field's whose data type is FLM_BLOB_TYPE. | |
RCODE | setINT (void *pvField, FLMINT iNumber, FLMUINT uiEncId=0) |
Set a field's value to a FLMINT value. The resulting data type for the field will be FLM_NUMBER_TYPE. | |
RCODE | setINT64 (void *pvField, FLMINT64 i64Number, FLMUINT uiEncId=0) |
Set a field's value to a FLMINT64 value. The resulting data type for the field will be FLM_NUMBER_TYPE. | |
RCODE | setUINT (void *pvField, FLMUINT uiNumber, FLMUINT uiEncId=0) |
Set a field's value to a FLMUINT value. The resulting data type for the field will be FLM_NUMBER_TYPE. | |
RCODE | setUINT64 (void *pvField, FLMUINT64 ui64Number, FLMUINT uiEncId=0) |
Set a field's value to a FLMUINT64 value. The resulting data type for the field will be FLM_NUMBER_TYPE. | |
RCODE | setRecPointer (void *pvField, FLMUINT uiRecPointer, FLMUINT uiEncId=0) |
Set a field's value to a FLMUINT value. The resulting data type for the field will be FLM_CONTEXT_TYPE. | |
RCODE | setUnicode (void *pvField, const FLMUNICODE *puzUnicode, FLMUINT uiEncId=0) |
Set a field's value to a Unicode string value. The resulting data type for the field will be FLM_TEXT_TYPE. | |
RCODE | setNative (void *pvField, const char *pszString, FLMUINT uiEncId=0) |
Set a field's value to a native string value. The resulting data type for the field will be FLM_TEXT_TYPE. | |
RCODE | setBinary (void *pvField, const void *pvBuf, FLMUINT uiBufLen, FLMUINT uiEncId=0) |
Set a field's value to a binary value. The resulting data type for the field will be FLM_BINARY_TYPE. | |
RCODE | setBlob (void *pvField, FlmBlob *pBlob, FLMUINT uiEncId=0) |
Set a field's value to a BLOB value. The resulting data type for the field will be FLM_BLOB_TYPE. | |
RCODE | insert (void *pvField, FLMUINT uiInsertAt, FLMUINT uiFieldID, FLMUINT uiDataType, void **ppvField) |
Insert a new field into the FlmRecord object. Insertion is relative to an already existing field. | |
RCODE | insertLast (FLMUINT uiLevel, FLMUINT uiFieldID, FLMUINT uiDataType, void **ppvField) |
Insert a new field into the FlmRecord object. | |
FINLINE RCODE | remove (void *pvField) |
Remove a field from a record. The field and all of its descendant fields will be removed from the record. | |
FINLINE void * | root (void) |
Return the root field of a record. The root field is the field that is at level zero in the record. | |
FINLINE void * | nextSibling (void *pvField) |
Return the next sibling field of a field. Returns NULL if there is no next sibling field. | |
void * | prevSibling (void *pvField) |
Return the previous sibling field of a field. Returns NULL if there is no previous sibling field. | |
FINLINE void * | firstChild (void *pvField) |
Return the first child field of a field. Returns NULL if field has no child fields. | |
FINLINE void * | lastChild (void *pvField) |
Return the last child field of a field. Returns NULL if field has no child fields. | |
FINLINE void * | parent (void *pvField) |
Return the parent field of a field. Returns NULL if the field is the "root" field of the record. | |
FINLINE void * | next (void *pvField) |
Return the "next" field of a field. | |
FINLINE void * | prev (void *pvField) |
Return the "previous" field of a field. | |
void * | find (void *pvStartField, FLMUINT uiFieldID, FLMUINT uiOccur=1, FLMUINT uiFindOption=SEARCH_FOREST) |
Find a field in a record that has a particular field number. Search is conducted relative to some other field in the record. | |
void * | find (void *pvStartField, FLMUINT *puiFieldPath, FLMUINT uiOccur=1, FLMUINT uiFindOption=SEARCH_FOREST) |
Find a field in a record that has a particular field path. Search is conducted relative to some other field in the record. | |
FINLINE FLMUINT | getLevel (void *pvField) |
Get the nesting level of a field in the record. | |
FINLINE FLMUINT | getFieldID (void *pvField) |
Get the field number for a field. | |
FINLINE void | setFieldID (void *pvField, FLMUINT uiFieldID) |
Set the field number for a field. | |
FINLINE FLMUINT | getDataType (void *pvField) |
Get a field's data type. | |
FINLINE FLMUINT | getDataLength (void *pvField) |
Get a field's data length. NOTE: This is the field's internal storage length. | |
FINLINE FLMBOOL | hasChild (void *pvField) |
Determine if a field has any child fields. | |
FINLINE FLMBOOL | isLast (void *pvField) |
Determine if a field has a next sibling field. | |
FINLINE void | setRightTruncated (void *pvField, FLMBOOL bTrueFalse) |
Set a flag for a field indicating if its value has been "right truncated." Right truncation really only applies to binary data or strings. | |
FINLINE FLMBOOL | isRightTruncated (void *pvField) |
Determine if field is marked as "right truncated." This really only applies to binary data or strings. | |
FINLINE void | setLeftTruncated (void *pvField, FLMBOOL bTrueFalse) |
Set a flag for a field indicating if its value has been "left truncated." Left truncation really only applies to binary data or strings. | |
FINLINE FLMBOOL | isLeftTruncated (void *pvField) |
Determine if field is marked as "left truncated." This really only applies to binary data or strings. | |
FINLINE RCODE | getFieldInfo (void *pvField, FLMUINT *puiFieldNum, FLMUINT *puiLevel, FLMUINT *puiDataType, FLMUINT *puiLength, FLMUINT *puiEncLength, FLMUINT *puiEncId) |
Get information about a field. | |
FLMUINT | getTotalMemory (void) |
Get the total memory being consumed by this FlmRecord object. | |
FINLINE FLMUINT | getFreeMemory (void) |
Get the amount of memory allocated to the FlmRecord object that is currently not used. | |
RCODE | compressMemory (void) |
Compress out unused memory within the FlmRecord object. See also FlmRecord::getFreeMemory(). | |
FINLINE FLMUINT | getID (void) |
Get the record ID (DRN) for this FlmRecord object. | |
FINLINE void | setID (FLMUINT uiRecordID) |
Set the record ID (DRN) for this FlmRecord object. | |
FINLINE FLMUINT | getContainerID (void) |
Get the container this FlmRecord object belongs to. | |
FINLINE void | setContainerID (FLMUINT uiContainerID) |
Set the container this FlmRecord object belongs to. | |
RCODE | importRecord (IF_FileHdl *pFileHdl, F_NameTable *pNameTable) |
Import a record from a file. | |
RCODE | importRecord (const char **ppszBuffer, FLMUINT uiBufSize, F_NameTable *pNameTable) |
Import a record from a string buffer. | |
RCODE | importRecord (NODE *pNode) |
Import a record from a Gedcom NODE tree. | |
RCODE | exportRecord (HFDB hDb, F_Pool *pPool, NODE **ppNode) |
Export a record to a Gedcom NODE tree. | |
FINLINE FLMBOOL | isReadOnly (void) |
Determine if the FlmRecord object is read-only. | |
FINLINE FLMBOOL | isCached (void) |
Determine if the FlmRecord object is cached in FLAIM's record cache. | |
FINLINE FLMBOOL | isOldVersion (void) |
Determine if the FlmRecord object is a prior version of the record or if it is the current version. | |
FINLINE const FLMBYTE * | getDataPtr (void *pvField) |
Get a pointer to a field's data. | |
FINLINE FLMBOOL | isEncryptedField (void *pvField) |
Determine if a field is encrypted. | |
FINLINE const FLMBYTE * | getEncryptionDataPtr (void *pvField) |
Get a pointer to a field's encrypted data. | |
FINLINE FLMUINT | getEncryptedDataLength (void *pvField) |
Get a field's encrypted data length. | |
FLMUINT | getEncryptionID (void *pvField) |
Get a field's encryption id. | |
FLMUINT | getEncFlags (void *pvField) |
Get a field's encryption flags. | |
FINLINE FLMBOOL | fieldIdTableEnabled (void) |
Determine if a record has a level one field ID table. | |
FINLINE void | enableFieldIdTable (void) |
Set a flag in the record that will cause it to generate a level one field ID table. | |
RCODE | createFieldIdTable (FLMBOOL bTruncateTable) |
Create a level one field ID table in a record. | |
void * | findLevelOneField (FLMUINT uiFieldID, FLMBOOL bFindInclusive, FLMUINT *puiFieldPos) |
Find a level one field ID in a record. | |
void * | getLevelOneField (FLMUINT uiFieldId, FLMUINT uiLevelOnePosition) |
Determine if the level one field at the specified position in the field ID table matches the passed in field ID. If so, return that field pointer. | |
void * | nextLevelOneField (FLMUINT *puiFieldPos, FLMBOOL bFieldIdsMustMatch) |
Get the next level one field after the position specified. Make sure that the next field has the same field ID as the current field. | |
FLMUINT | getLevelOneFieldId (FLMUINT uiLevelOnePosition) |
Get the field ID of the field that is in the specified position in the field ID table. |
|
Increment the reference count for this FlmRecord object. The reference count is the number of pointers that are referencing this FlmRecord object. Return value is the incremented reference count. |
|
Clear all fields in this FlmRecord object.
|
|
Create a level one field ID table in a record.
|
|
Export a record to a Gedcom NODE tree.
|
|
Find a field in a record that has a particular field path. Search is conducted relative to some other field in the record.
|
|
Find a field in a record that has a particular field number. Search is conducted relative to some other field in the record.
|
|
Find a level one field ID in a record.
|
|
Return the first child field of a field. Returns NULL if field has no child fields.
|
|
Get a field's value as binary data. This method may be used for any type of field, but it really only makes sense for fields whose data type is FLM_BINARY_TYPE. If it is used on a field whose data type is not FLM_BINARY_TYPE, the data returned is in FLAIM's internal storage format.
|
|
Get the number of bytes needed to retrieve a field's value as binary data. This method may be called for any type of field, but it really only makes sense for fields whose data type is FLM_BINARY_TYPE.
|
|
Get a field's value as a FlmBlob object. This method may only be used on field's whose data type is FLM_BLOB_TYPE.
|
|
Get a field's data length. NOTE: This is the field's internal storage length.
|
|
Get a pointer to a field's data. The returned pointer will be pointing to the data in FLAIM's internal storage format.
|
|
Get a field's data type.
|
|
Get a field's encryption flags. NOTE: This method should NOT be called if the field is not encrypted. Call FlmRecord::isEncryptedField() to determine if the field is encrypted. If called for a non-encrypted field, it will return 0. In debug mode it will also assert.
|
|
Get a field's encrypted data length. NOTE: This method should NOT be called if the field is not encrypted. Call FlmRecord::isEncryptedField() to determine if the field is encrypted. If called for a non-encrypted field, it will return 0. In debug mode it will also assert.
|
|
Get a pointer to a field's encrypted data. NOTE: This method should NOT be called if the field is not encrypted. Call FlmRecord::isEncryptedField() to determine if the field is encrypted. If called for a non-encrypted field, it will return NULL. In debug mode it will also assert.
|
|
Get a field's encryption id. NOTE: This method should NOT be called if the field is not encrypted. Call FlmRecord::isEncryptedField() to determine if the field is encrypted. If called for a non-encrypted field, it will return 0. In debug mode it will also assert.
|
|
Get the field number for a field.
|
|
Get information about a field. Information includes field number, level, data type, data length, encryption length, and encryption id.
|
|
Get a field's value as a FLMINT. Data conversions will be done if the field is a FLM_CONTEXT_TYPE or FLM_TEXT_TYPE.
|
|
Get a field's value as a FLMINT32. Data conversions will be done if the field is a FLM_CONTEXT_TYPE or FLM_TEXT_TYPE.
|
|
Get a field's value as a FLMINT64. Data conversions will be done if the field is a FLM_CONTEXT_TYPE or FLM_TEXT_TYPE.
|
|
Get the nesting level of a field in the record. The nesting level begins at 0 (root field), 1 (children of the root field), 2 (grandchildren of the root field), etc.
|
|
Determine if the level one field at the specified position in the field ID table matches the passed in field ID. If so, return that field pointer.
|
|
Get the field ID of the field that is in the specified position in the field ID table.
|
|
Get a field's value as a native string. Note that the field may be a FLM_NUMBER_TYPE, or FLM_TEXT_TYPE.
|
|
Get the number of bytes needed to retrieve a field's value as a native string. The value may be either a FLM_NUMBER_TYPE or a FLM_TEXT_TYPE. The length returned does NOT account for null-termination, so if the application is calling this routine to determine how big of a buffer to allocate, it should add 1 to the size returned from this routine.
|
|
Get the value for a FLM_CONTEXT_TYPE field as a FLMUINT.
|
|
Get the value for a FLM_CONTEXT_TYPE field as a FLMUINT32.
|
|
Get a field's value as a FLMUINT. Data conversions will be done if the field is a FLM_CONTEXT_TYPE or FLM_TEXT_TYPE.
|
|
Get a field's value as a FLMUINT32. Data conversions will be done if the field is a FLM_CONTEXT_TYPE or FLM_TEXT_TYPE.
|
|
Get a field's value as a FLMUINT64. Data conversions will be done if the field is a FLM_CONTEXT_TYPE or FLM_TEXT_TYPE.
|
|
Get a field's value as a unicode string. Note that the field may be a FLM_NUMBER_TYPE, or FLM_TEXT_TYPE.
|
|
Get the number of bytes needed to retrieve a field's value as a unicode string. The value may be either a FLM_NUMBER_TYPE or a FLM_TEXT_TYPE. The length returned does NOT account for null-termination, so if the application is calling this routine to determine how big of a buffer to allocate, it should add 2 to the size returned from this routine.
|
|
Determine if a field has any child fields.
|
|
Import a record from a Gedcom NODE tree.
|
|
Import a record from a string buffer. The record in the string should be formatted according to the specification for GEDCOM.
|
|
Import a record from a file. The record in the file should be formatted according to the specification for GEDCOM.
|
|
Insert a new field into the FlmRecord object. Insertion is relative to an already existing field.
|
|
Insert a new field into the FlmRecord object. New field is always inserted as the last field in the record.
|
|
Determine if a field is encrypted.
|
|
Determine if a field has a next sibling field.
|
|
Determine if field is marked as "left truncated." This really only applies to binary data or strings. It indicates that data at the beginning of the binary value or string value is missing.
|
|
Determine if field is marked as "right truncated." This really only applies to binary data or strings. It indicates that data at the end of the binary value or string value is missing.
|
|
Return the last child field of a field. Returns NULL if field has no child fields.
|
|
Return the "next" field of a field. If the field has child fields, then "next" means first child. If the field has no child fields, but has siblings, then "next" means next sibling. If the field has no next sibling field, then "next" means the next sibling of the field's parent field (if any), or the next sibling of the grandparent field (if any), etc. If there is no next sibling to a parent, grandparent, etc., then NULL will be returned.
|
|
Get the next level one field after the position specified. Make sure that the next field has the same field ID as the current field.
|
|
Return the next sibling field of a field. Returns NULL if there is no next sibling field.
|
|
Overloaded delete operator (array) for FlmRecord objects. Pointer to array of FlmRecord objects being freed. This method is called when an array of FlmRecord objects is freed. |
|
Overloaded new operator for ::FlmRecord objects (with source file and line number). This new operator passes in the current file and line number. This information is useful in tracking memory allocations to determine where memory leaks are coming from.
|
|
Overloaded new operator for FlmRecord objects.
|
|
Overloaded new operator (array) for FlmRecord objects (with source file and line number). This new operator is called when an array of FlmRecord objects is allocated. This new operator passes in the current file and line number. This information is useful in tracking memory allocations to determine where memory leaks are coming from.
|
|
Overloaded new operator (array) for FlmRecord objects. This method is called when an array of FlmRecord objects is allocated.
|
|
Return the parent field of a field. Returns NULL if the field is the "root" field of the record.
|
|
Return the "previous" field of a field. If the field has a previous sibling field, and that previous sibling has children, grandchildren, etc., then "previous" means previous sibling's last child's, last child, last child (etc.). If the previous sibling field has no children, then "previous" means previous sibling. If there is no previous sibling, then "previous" means parent field. If the field is the "root" field, then NULL will be returned.
|
|
Return the previous sibling field of a field. Returns NULL if there is no previous sibling field.
|
|
Decrement the reference count for this FlmRecord object. The reference count is the number of pointers that are referencing this FlmRecord object. Return value is the decremented reference count. If the reference count goes to zero, the FlmRecord object will be deleted. |
|
Remove a field from a record. The field and all of its descendant fields will be removed from the record.
|
|
Set a field's value to a binary value. The resulting data type for the field will be FLM_BINARY_TYPE.
|
|
Set a field's value to a BLOB value. The resulting data type for the field will be FLM_BLOB_TYPE.
|
|
Set the field number for a field.
|
|
Set a field's value to a FLMINT value. The resulting data type for the field will be FLM_NUMBER_TYPE.
|
|
Set a field's value to a FLMINT64 value. The resulting data type for the field will be FLM_NUMBER_TYPE.
|
|
Set a flag for a field indicating if its value has been "left truncated." Left truncation really only applies to binary data or strings. It specifies that data at the beginning of the binary value or string value is missing.
|
|
Set a field's value to a native string value. The resulting data type for the field will be FLM_TEXT_TYPE.
|
|
Set a field's value to a FLMUINT value. The resulting data type for the field will be FLM_CONTEXT_TYPE.
|
|
Set a flag for a field indicating if its value has been "right truncated." Right truncation really only applies to binary data or strings. It specifies that data at the end of the binary value or string value is missing.
|
|
Set a field's value to a FLMUINT value. The resulting data type for the field will be FLM_NUMBER_TYPE.
|
|
Set a field's value to a FLMUINT64 value. The resulting data type for the field will be FLM_NUMBER_TYPE.
|
|
Set a field's value to a Unicode string value. The resulting data type for the field will be FLM_TEXT_TYPE.
|