UCommon
Namespaces | Macros | Typedefs | Functions | Variables
platform.h File Reference

Various miscellaneous platform specific headers and defines. More...

#include <cstdlib>
#include <cstddef>
#include <stdexcept>
#include <pthread.h>
#include <signal.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <stdint.h>
#include <unistd.h>
#include <stdio.h>
#include <cctype>
#include <climits>
#include <cerrno>
#include <new>
#include <assert.h>
Include dependency graph for platform.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 ucommon
 Common namespace for all ucommon objects.
 

Macros

#define __ALIGNED(x)   __attribute__(align(x))
 
#define __DELETE_COPY(x)
 
#define __DELETE_DEFAULTS(x)
 
#define __DELETED
 
#define __EXPORT   __attribute__ ((visibility("default")))
 
#define __FINAL
 
#define __GNUC_PREREQ__(maj, min)   0
 
#define __LOCAL   __attribute__ ((visibility("hidden")))
 
#define __MALLOC
 
#define __OVERRIDE
 
#define __PRINTF(x, y)
 
#define __PROGRAM(c, v)   extern "C" int main(int c, char **v)
 
#define __PROTOCOL   virtual
 
#define __SCANF(x, y)
 
#define __SERVICE(id, c, v)   void service_##id(int c, char **v)
 
#define __SHARED   __attribute__ ((visibility("default")))
 
#define __THROW_ALLOC()   throw std::bad_alloc()
 
#define __THROW_DEREF(v)
 
#define __THROW_RANGE(x)   throw std::out_of_range(x)
 
#define __THROW_RUNTIME(x)   throw std::runtime_error(x)
 
#define __THROW_SIZE(x)   throw std::length_error(x)
 
#define __THROW_UNDEF(v, x)   if(v == nullptr) throw std::runtime_error(x)
 
#define __UNUSED(x)   (void)x
 
#define _POSIX_PTHREAD_SEMANTICS
 
#define _REENTRANT   1
 
#define _THREADSAFE   1
 
#define _UCOMMON_EXTENDED_
 
#define _UCOMMON_PLATFORM_H_
 
#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 ucommon {
 
#define NDEBUG
 
#define PROGRAM_EXIT(code)   return code
 
#define PROGRAM_MAIN(argc, argv)   extern "C" int main(int argc, char **argv)
 
#define SERVICE_MAIN(id, argc, argv)   void service_##id(int argc, char **argv)
 
#define UCOMMON_ABI   7
 
#define UCOMMON_NAMESPACE   ucommon
 
#define UCOMMON_RTTI   1
 

Typedefs

typedef void(* cpr_service_t) (int argc, char **argv)
 
typedef int fd_t
 
typedef long Integer
 
typedef double Real
 
typedef void(* sighandler_t) (int)
 Convenient typedef for signal handlers. More...
 
typedef int socket_t
 
typedef size_t socksize_t
 
typedef size_t stacksize_t
 
typedef unsigned long timeout_t
 
typedef uint8_t ubyte_t
 
typedef unsigned long Unsigned
 

Functions

template<typename T >
const T immutable_cast (T p)
 
template<class T >
T * init (T *memory)
 Template function to initialize memory by invoking default constructor. More...
 
template<class T , class S >
polyconst_cast (S *s)
 
template<class T , class S >
polydynamic_cast (S *s)
 
template<class T , class S >
polypointer_cast (S *s)
 
template<class T , class S >
T & polyreference_cast (S *s)
 
template<class T , class S >
polystatic_cast (S *s)
 
template<typename T , typename S >
protocol_cast (S *s)
 
template<typename T >
T & reference_cast (T *pointer)
 
void strfree (char *str)
 Matching function for strdup(). More...
 

Variables

const class nullptr_t nullptr = {}
 

Detailed Description

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.

Macro Definition Documentation

◆ __DELETE_COPY

#define __DELETE_COPY (   x)
Value:
inline x(const x&);\
inline x& operator=(const x&)

Definition at line 160 of file platform.h.

◆ __DELETE_DEFAULTS

#define __DELETE_DEFAULTS (   x)
Value:
inline x();\
__DELETE_COPY(x)

Definition at line 162 of file platform.h.

◆ __THROW_DEREF

#define __THROW_DEREF (   v)
Value:
if(v == nullptr) \
throw std::runtime_error("Dereference NULL")

Definition at line 53 of file platform.h.

Typedef Documentation

◆ sighandler_t

typedef void(* sighandler_t) (int)

Convenient typedef for signal handlers.

Definition at line 451 of file platform.h.

Function Documentation

◆ init()

template<class T >
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.

Parameters
memoryto initialize.
Returns
memory initialized.

Definition at line 551 of file platform.h.

◆ strfree()

void strfree ( char *  str)
inline

Matching function for strdup().

Parameters
stringto release from allocated memory.
Examples
string.cpp.

Definition at line 563 of file platform.h.