Modules | Macros | Functions
Tools

Eina tools aims to help application development, providing ways to make it safer, log errors, manage memory more efficiently and more. More...

Modules

 Benchmark
 These functions allow you to add a benchmark framework to a project for timing critical parts and detecting slow parts of code.
 
 Bezier Curve
 
 Convert
 These functions allow you to convert integer or real numbers to string or conversely.
 
 Counter
 This group discusses the functions that allow you to get the time spent in a part of a code.
 
 Copy On Write
 These functions provide some helper for a pseudo Copy-On-Write mechanism.
 
 Cpu
 Cpu and architecture related helpers.
 
 Error
 This group discusses the functions that provide error management for projects.
 
 File
 This group discusses the functions to handle files and directories.
 
 Lazy allocator
 
 Lock
 This group provides thread locking and synchronization capabilities.
 
 Log
 Full-featured logging system.
 
 Magic
 Eina_Magic provides run-time type-checking.
 
 Memory Pool
 This group discusses the functions that provide memory pool management.
 
 Module
 These functions provide module management.
 
 Prefix
 This group discusses the functions that provide the ability to determine the runtime location of a software package.
 
 Rectangle
 These functions provide rectangle management.
 
 Safety Checks
 Safety checks are a set of macros to check for parameters or values that should never happen, it is similar in concept to assert(), but will log and return instead of abort() your program.
 
 Schedule
 TODO: description.
 
 Simple_XML
 Simplistic relaxed SAX-like XML parser.
 
 String
 Provides useful functions for C string manipulation.
 
 Thread
 Abstracts platform threads, providing a uniform API.
 
 Xattrs
 Extended Attributes handling.
 

Macros

#define EINA_FLT_EQ(a, b)   (!!(fabsf((float)(a) - (float)(b)) <= FLT_EPSILON))
 Safe comparison of float. More...
 
#define EINA_FLT_NONZERO(a)   (!!(fpclassify((float)(a)) != FP_ZERO))
 Determines if a float is not zero. More...
 
#define EINA_DBL_EQ(a, b)   (!!(fabs((double)(a) - (double)(b)) <= DBL_EPSILON))
 Safe comparison of double. More...
 
#define EINA_DBL_NONZERO(a)   (!!(fpclassify((double)(a)) != FP_ZERO))
 Determines if a double is not zero. More...
 

Functions

const char * eina_environment_home_get (void)
 Returns the content of the environment referred by HOME on this system. More...
 
const char * eina_environment_tmp_get (void)
 Returns the content of the environment referred as TMPDIR on this system. More...
 
static Eina_Bool eina_dbl_exact (double a, double b)
 Warningless comparison of doubles using ==. More...
 
static Eina_Bool eina_flt_exact (float a, float b)
 Warningless comparison of floats using ==. More...
 

Detailed Description

Eina tools aims to help application development, providing ways to make it safer, log errors, manage memory more efficiently and more.

For more information refer to the string example.

Macro Definition Documentation

◆ EINA_FLT_EQ

#define EINA_FLT_EQ (   a,
 
)    (!!(fabsf((float)(a) - (float)(b)) <= FLT_EPSILON))

Safe comparison of float.

Parameters
[in]aFirst member to compare
[in]bSecond member to compare
Since
1.19
Returns
true if two floats match

◆ EINA_FLT_NONZERO

#define EINA_FLT_NONZERO (   a)    (!!(fpclassify((float)(a)) != FP_ZERO))

Determines if a float is not zero.

Parameters
[in]aThe float
Returns
true if float is not zero
Since
1.19

◆ EINA_DBL_EQ

#define EINA_DBL_EQ (   a,
 
)    (!!(fabs((double)(a) - (double)(b)) <= DBL_EPSILON))

Safe comparison of double.

Parameters
[in]aFirst member to compare
[in]bSecond member to compare
Since
1.19
Returns
true if two double match
Examples
bg_example_03.c, client.c, edje-basic.c, evas-box.c, progressbar_example.c, and transit_example_03.c.

◆ EINA_DBL_NONZERO

#define EINA_DBL_NONZERO (   a)    (!!(fpclassify((double)(a)) != FP_ZERO))

Determines if a double is not zero.

Parameters
[in]aThe double
Returns
true if double is not zero
Since
1.19

Function Documentation

◆ eina_environment_home_get()

const char* eina_environment_home_get ( void  )

Returns the content of the environment referred by HOME on this system.

Returns
A temporary string to the content referred by HOME on this system.
Note
The result of this call is highly system dependent and you better use it instead of the naive getenv("HOME").
Since
1.15

Referenced by ecore_file_app_exe_get().

◆ eina_environment_tmp_get()

const char* eina_environment_tmp_get ( void  )

Returns the content of the environment referred as TMPDIR on this system.

Returns
A temporary string to the content referred by TMPDIR on this system.
Note
The result of this call is highly system dependent and you better use it instead of the naive getenv("TMPDIR").
Since
1.15

Referenced by ecore_con_local_path_new().

◆ eina_dbl_exact()

static Eina_Bool eina_dbl_exact ( double  a,
double  b 
)
inlinestatic

Warningless comparison of doubles using ==.

Parameters
[in]aFirst member to compare
[in]bSecond member to compare
Returns
true if two doubles match
Since
1.19

Referenced by eina_convert_strtod_c().

◆ eina_flt_exact()

static Eina_Bool eina_flt_exact ( float  a,
float  b 
)
inlinestatic

Warningless comparison of floats using ==.

Parameters
[in]aFirst member to compare
[in]bSecond member to compare
Returns
true if two floats match
Since
1.19