|
CAEN Utility
2.0.2
Utilities for CAEN projects
|
| Allocator | Utilities to handle memory allocation in C minimizing memory leaks It provides a malloc-like interface, but keeps an internal list of the allocated pointers. A function can be used to free them all at once, and a function to free all pointers and return a given value is provided. This allows a calling function to quickly allocate resources and return a value free-ing them |
| Linked List | Utilities to implement linked list |
| Logger functions | Log related functions |
| Logger | Log related macros |
| Maps | Hash table implementation in C |
| Heap allocator wrappers, optimized for the current system | Wrappers to malloc/realloc/calloc/free |
| Memory related function | Wrappers to memset/memcpy/memmove |
| Process related functions | Platform independent functions to manage processes |
| Load functions dynamically | Platform independent API to load / close functions from libraries dynamically |
| Bit manipulation functions | Platform independent bit manipulation functions |
| dirent.h implementation for Windows | Implementation of "dirent.h" for Windows, using "Henney's POSIX Directory Browsing API for Windows" |
| conio.h implementation for Linux | Implementation of "conio.h" for Linux |
| POSIX functions on Windows | Macros to use some POSIX functions with their Windows equivalent |
| Floating point manipulation | Platform independent floating point manipulation functions |
| Time related functions | Platform independent functions to manage time |
| Portable host to Network conversion functions | Platform independent functions to convert integer formats |
| POSIX Getopt for Windows | Platform independent version for Getopt, POSIX function defined by unistd.h |
| Pseudo-random generator MT19937 | Pseudo-random number generator functions using 32-bit MT19937 by Matsumoto and Nishimura (1998). Equivalent to C++ std::mt19937 implementation |
| Pseudo-random generator MT19937-64 | Pseudo-random number generator functions using 64-bit MT19937 by Matsumoto and Nishimura (2000). Equivalent to C++ std::mt19937_64 implementation |
| ▼Serialization/deserialization protocol functions | TCP/IP protocol |
| Specialized versions of c_recv/c_recv_unlock for CAEN protocol packets | |
| Functions to get packet info | |
| Serialization of base types | |
| Deserialization of base types | |
| ▼Network protocol functions | TCP/IP protocol |
| Safe versions of recv() and send() | |
| Safe versions of recv() and send() with mutex locking | |
| Platform independent wrappers of socket/accept/bind/listen/connect | |
| Simplified client/server functions | |
| Condition functions. | TODO |
| Semaphores related functions | Platform independent functions to manage semaphores |
| Mutex related functions | Platform independent functions to manage mutexes |
| ▼Thread related functions | Platform independent functions to manage threads |
| Tickets related functions | Platform independent implementation of fair mutex |
| Parse URL | Utilities to parse a standard URL |
| String utility macros | To convert macro to string |
| Compiler version utility macros | To get information about the used compiler |
| Macros to set compiler attributes | Macros to set function attributes compilers and improve optimization |
| Macro to set likelihood of if statements | These macros communicate to the compiler that the conditional expression is likely or unlikely to yield a positive result |
| String manipulation | Function to manupulate strings |
| XML parser | Wrapper functions to libxml |