UCommon
|
Various miscellaneous platform specific headers and defines. More...
#include <pthread.h>
#include <signal.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <stdint.h>
#include <unistd.h>
#include <stdlib.h>
#include <errno.h>
#include <assert.h>
#include <pthread.h>
#include <signal.h>
#include <stdint.h>
#include <unistd.h>
#include <stdlib.h>
#include <errno.h>
#include <assert.h>
Go to the source code of this file.
Namespaces | |
namespace | ucc |
Common namespace for all ucommon objects. | |
Defines | |
#define | __EXPORT |
#define | __LOCAL |
#define | __MALLOC |
#define | __PRINTF(x, y) |
#define | __SCANF(x, y) |
#define | _POSIX_PTHREAD_SEMANTICS |
#define | _REENTRANT 1 |
#define | _THREADSAFE 1 |
#define | _UCOMMON_EXTENDED_ |
#define | crit(x, text) if(!(x)) cpr_runtime_error(text) |
#define | END_NAMESPACE } |
#define | INVALID_HANDLE_VALUE -1 |
#define | INVALID_SOCKET -1 |
#define | NAMESPACE_UCOMMON namespace ucc { |
#define | NDEBUG |
#define | UCOMMON_ABI 4 |
#define | UCOMMON_NAMESPACE ucc |
Typedefs | |
typedef int | fd_t |
typedef long | Integer |
typedef double | Real |
typedef void(* | sighandler_t )(int) |
Convenient typedef for signal handlers. | |
typedef int | socket_t |
typedef unsigned long | timeout_t |
Typedef for millisecond timer values. | |
typedef unsigned long | Unsigned |
Functions | |
void * | cpr_memalloc (size_t size) |
Portable memory allocation helper function. | |
void * | cpr_memassign (size_t size, caddr_t address, size_t known) |
Portable memory placement helper function. | |
void | cpr_memswap (void *mem1, void *mem2, size_t size) |
Portable swap code. | |
void | cpr_runtime_error (const char *text) |
Function to handle runtime errors. | |
template<class T > | |
T * | init (T *memory) |
Template function to initialize memory by invoking default constructor. | |
uint32_t | lsb_getlong (uint8_t *b) |
uint16_t | lsb_getshort (uint8_t *b) |
void | lsb_setlong (uint8_t *b, uint32_t v) |
void | lsb_setshort (uint8_t *b, uint16_t v) |
uint32_t | msb_getlong (uint8_t *b) |
uint16_t | msb_getshort (uint8_t *b) |
void | msb_setlong (uint8_t *b, uint32_t v) |
void | msb_setshort (uint8_t *b, uint16_t v) |
void * | operator new (size_t size, caddr_t address, size_t known) |
A placement new operator where we know the allocated size. | |
void * | operator new (size_t size, size_t extra) |
Overdraft new to allocate extra memory for object from heap. | |
void * | operator new (size_t size, caddr_t address) |
A placement new operator where we assume the size of memory is good. |
Various miscellaneous platform specific headers and defines.
This is used to support ucommon on different platforms. The ucommon library assumes at least a real posix threading library is present or will build thread support native on Microsoft Windows legacy platform. This header also deals with issues related to common base types.
Definition in file platform.h.
typedef void(* sighandler_t)(int) |
Convenient typedef for signal handlers.
Definition at line 299 of file platform.h.
typedef unsigned long timeout_t |
Typedef for millisecond timer values.
Definition at line 300 of file platform.h.
void* cpr_memalloc | ( | size_t | size | ) |
Portable memory allocation helper function.
Handles out of heap error as a runtime error.
size | of memory block to allocate from heap. |
void* cpr_memassign | ( | size_t | size, |
caddr_t | address, | ||
size_t | known | ||
) |
Portable memory placement helper function.
This is used to process "placement" new operators where a new object is constructed over a pre-allocated area of memory. This handles invalid values through runtime error.
size | of object being constructed. |
address | where the object is being placed. |
known | size of the location we are constructing the object in. |
void cpr_memswap | ( | void * | mem1, |
void * | mem2, | ||
size_t | size | ||
) |
Portable swap code.
mem1 | to swap. |
mem2 | to swap. |
size | of swap area. |
void cpr_runtime_error | ( | const char * | text | ) |
Function to handle runtime errors.
When using the standard C library, runtime errors are handled by a simple abort. When using the stdc++ library with stdexcept, then std::runtime_error will be thrown.
text | of runtime error. |
T* init | ( | T * | memory | ) | [inline] |
Template function to initialize memory by invoking default constructor.
If NULL is passed, then NULL is returned without any constructor called.
memory | to initialize. |
Definition at line 516 of file platform.h.
void* operator new | ( | size_t | size, |
caddr_t | address, | ||
size_t | known | ||
) | [inline] |
A placement new operator where we know the allocated size.
We find out how much memory is needed by the new and can prevent the object from exceeding the available space we are placing the object.
size | of memory needed for object. |
address | where to place object. |
known | size of location we are placing object. |
Definition at line 467 of file platform.h.
void* operator new | ( | size_t | size, |
size_t | extra | ||
) | [inline] |
Overdraft new to allocate extra memory for object from heap.
This is used for objects that must have a known class size but store extra data behind the class. The last member might be an unsized or 0 element array, and the actual size needed from the heap is hence not the size of the class itself but is known by the routine allocating the object.
size | of object. |
extra | heap space needed for data. |
Definition at line 443 of file platform.h.
void* operator new | ( | size_t | size, |
caddr_t | address | ||
) | [inline] |
A placement new operator where we assume the size of memory is good.
We construct the object at a specified place in memory which we assume is valid for our needs.
size | of memory needed for object. |
address | where to place object. |
Definition at line 454 of file platform.h.