Auxiliary definitions and functions

These functions will help handling basic structures of the library. More...

Defines

#define LF_EXPORT
 This macro expands to an appropiate symbol visibility declaration.
#define cbool   int
 C-compatible bool type; don't bother to define Yet Another Boolean Type.

Typedefs

typedef char * lfMLstr
 The storage of "multi-language" strings is simple yet flexible, handy and effective.

Enumerations

enum  lfError { LF_NO_ERROR = 0, LF_WRONG_FORMAT }
 

liblensdb error codes: negative codes are -errno, positive are here

More...

Functions

void lf_free (void *data)
 The basics of memory allocation: never free objects allocated by the library yourselves, instead use this function.
const char * lf_mlstr_get (const lfMLstr str)
 Get a string corresponding to current locale from a multi-language string.
lfMLstr lf_mlstr_add (lfMLstr str, const char *lang, const char *trstr)
 Add a new translated string to a multi-language string.
lfMLstr lf_mlstr_dup (const lfMLstr str)
 Create a complete copy of a multi-language string.

Detailed Description

These functions will help handling basic structures of the library.


Typedef Documentation

typedef char* lfMLstr

The storage of "multi-language" strings is simple yet flexible, handy and effective.

The first (default) string comes first, terminated by \0 as usual, after that a language code follows, then \0 again, then the translated value and so on. The list terminates as soon as a \0 is encountered instead of next string, e.g. last string in list is terminated with two null characters.


Enumeration Type Documentation

enum lfError

liblensdb error codes: negative codes are -errno, positive are here

Enumerator:
LF_NO_ERROR 

No error occured.

LF_WRONG_FORMAT 

Wrong XML data format.


Function Documentation

void lf_free ( void *  data  ) 

The basics of memory allocation: never free objects allocated by the library yourselves, instead use this function.

It is a direct equivalent of standard C free(), however you should not use free() in the event that the library uses a separate heap.

Parameters:
data A pointer to memory to be freed.
Examples:
tfun.cpp, and tmod.cpp.
lfMLstr lf_mlstr_add ( lfMLstr  str,
const char *  lang,
const char *  trstr 
)

Add a new translated string to a multi-language string.

This uses realloc() so returned value may differ from input.

Parameters:
str The string to append to. Can be NULL.
lang The language for the new added string. If NULL, the default string is replaced (the first one in list, without a language designator).
trstr The translated string
Returns:
The reallocated multi-language string. To free a multi-language string, use lf_free().
lfMLstr lf_mlstr_dup ( const lfMLstr  str  ) 

Create a complete copy of a multi-language string.

Parameters:
str The string to create a copy of
Returns:
A new allocated multi-language string
const char* lf_mlstr_get ( const lfMLstr  str  ) 

Get a string corresponding to current locale from a multi-language string.

Current locale is determined from LC_MESSAGES category at the time of the call, e.g. if you change LC_MESSAGES at runtime, next calls to lf_mlstr_get() will return the string for the new locale.

Examples:
example.c, and tfun.cpp.

Generated on 24 Jul 2010 for lensfun by  doxygen 1.6.1