libqi-api
2.1.4.13
|
OS abstraction layer. More...
Classes | |
class | QiException |
Custom exception that may be thrown by QI methods. More... | |
struct | timeval |
Functions | |
FILE * | fopen (const char *filename, const char *mode) |
Open a file and returns and handle on it. More... | |
int | stat (const char *filename, struct stat *pstat) |
int | checkdbg () |
std::string | home () |
Return path to the current user's HOME. More... | |
std::string | mktmpdir (const char *prefix="") |
Return a writable temporary directory. More... | |
std::string | tmp () |
std::string | gethostname () |
Get the system's hostname. More... | |
int | isatty (int fd=1) |
bool | fnmatch (const std::string &pattern, const std::string &string) |
char * | strdup (const char *src) |
int | snprintf (char *str, size_t size, const char *format,...) |
std::string | getenv (const char *var) |
Get an environment variable. More... | |
int | setenv (const char *var, const char *value) |
std::string | timezone () |
void | sleep (unsigned int seconds) |
void | msleep (unsigned int milliseconds) |
Sleep for the specified number of milliseconds. More... | |
int | gettimeofday (qi::os::timeval *tp) |
The gettimeofday() function shall obtain the current time. More... | |
qi::int64_t | ustime () |
std::pair< int64_t, int64_t > | cputime () |
qi::os::timeval | operator+ (const qi::os::timeval &lhs, const qi::os::timeval &rhs) |
qi::os::timeval | operator+ (const qi::os::timeval &lhs, long us) |
qi::os::timeval | operator- (const qi::os::timeval &lhs, const qi::os::timeval &rhs) |
qi::os::timeval | operator- (const qi::os::timeval &lhs, long us) |
void * | dlopen (const char *filename, int flag=-1) |
Load a dynamic library. More... | |
int | dlclose (void *handle) |
Decrements the reference count on the dynamic library. More... | |
void * | dlsym (void *handle, const char *symbol) |
Get the address where the symbol is loaded into memory. More... | |
const char * | dlerror (void) |
Returns a human readable string of the error code. More... | |
int | spawnvp (char *const argv[]) |
int | spawnlp (const char *argv,...) |
int | system (const char *command) |
int | getpid () |
Get the process identifier. More... | |
int | gettid () |
Get the thread identifier. More... | |
int | waitpid (int pid, int *status) |
int | kill (int pid, int sig) |
Send a signal to a process. More... | |
unsigned short | findAvailablePort (unsigned short port) |
Find the first available port starting at port number in parameter. More... | |
std::map< std::string, std::vector< std::string > > | hostIPAddrs (bool ipv6Addr=false) |
Find all network adapters and corresponding IPs. More... | |
void | setCurrentThreadName (const std::string &name) |
Set the current thread name to the string in parameter. More... | |
std::string | currentThreadName () |
bool | setCurrentThreadCPUAffinity (const std::vector< int > &cpus) |
long | numberOfCPUs () |
std::string | getMachineId () |
Returns an unique uuid for the machine. More... | |
std::string | generateUuid () |
size_t | memoryUsage (unsigned int pid) |
QI_API_DEPRECATED std::string | tmpdir (const char *prefix="") |
OS abstraction layer.
* This module provides some functions following POSIX convention to manipulate * the operating system layer in a cross-platform way. * * .. note:: * * Every path taken in parameter *must* be encoded in UTF-8. Every path * returned is encoded in UTF-8. *
int qi::os::checkdbg | ( | ) |
std::string qi::os::currentThreadName | ( | ) |
qi::os::dlclose | ( | void * | handle | ) |
Decrements the reference count on the dynamic library.
handle | The dynamic library handle. |
* Decrements the reference count on the dynamic library handle. If the * reference count drops to zero and no other loaded library uses symbols in * it, then the dynamic library is unloaded. * * If there is an error you can look which one with dlerror function provided in * this same module. * * .. seealso:: :cpp:func:`qi::os::dlerror(void)` for more details on the error. * * .. versionadded:: 1.12 *
qi::os::dlerror | ( | void | ) |
Returns a human readable string of the error code.
.. warning:: On windows, return value may be modified by another function unrelated to qi::os::dlopen familly. This function does not ensure that error value is 0 at initialisation. You may reset error value before a call to any qi::os::dl{open, sym, close} functions with a first call to this function.
* Returns a human readable string describing the most recent error that * occurred from :cpp:func:`qi::os::dlopen(const char*, int)`, * :cpp:func:`qi::os::dlsym(void*, const char*)` or * :cpp:func:`qi::os::dlclose(void*)` since the last call to * :cpp:func:`qi::os::dlerror()`. * * .. versionadded:: 1.12 *
qi::os::dlopen | ( | const char * | filename, |
int | flag = -1 |
||
) |
Load a dynamic library.
filename | Name of the dynamic library. |
flag | Flags used to load the dynamic library. |
* Loads the dynamic library file named by the null-terminated string filename * and returns an opaque "handle" for the dynamic library. If filename is NULL, * then the returned handle is for the main program. * * No flag is supported on windows platform. Otherwise, see ``man 0p dlfcn.h`` * for more information on flags available. If not given, ``RTLD_NOW`` is used. * * .. seealso:: :cpp:func:`qi::os::dlerror(void)` for more details on the error. * * .. versionadded:: 1.12 *
qi::os::dlsym | ( | void * | handle, |
const char * | symbol | ||
) |
Get the address where the symbol is loaded into memory.
handle | Handle on a dynamic library returned by dlopen(). |
symbol | The null-terminated symbol name. |
* If the symbol is not found in the specified library or any of the libraries * that were automatically loaded by :cpp:func:`qi::os::dlopen()` when that * library was loaded, :cpp:func:`qi::os::dlsym()` returns 0. * * .. seealso:: :cpp:func:`qi::os::dlerror(void)` for more details on the error. * * .. versionadded:: 1.12 *
qi::os::findAvailablePort | ( | unsigned short | port | ) |
Find the first available port starting at port number in parameter.
port | First port tested, then each port following it is tested one by one until one available is found. |
* .. warning:: * * This function is not thread safe and suffers from a race condition. You * should avoid calling it and call listen on port 0 instead. This will pick * a random port with no race condition. * * .. versionadded:: 1.14 *
bool qi::os::fnmatch | ( | const std::string & | pattern, |
const std::string & | string | ||
) |
handles * and ? wilcards
qi::os::fopen | ( | const char * | filename, |
const char * | mode | ||
) |
Open a file and returns and handle on it.
filename | Path to the file (in UTF-8). |
mode | The mode. |
* Nothing special under POSIX systems, it's only useful for Windows, * where files should be open using a widestring. * * Refer to ``man 3 fopen`` for more informations on POSIX systems, and to the * documentation of _wfopen on MSDN to understand the Windows behaviors. * * .. versionadded:: 1.12 *
std::string qi::os::generateUuid | ( | ) |
qi::os::getenv | ( | const char * | var | ) |
Get an environment variable.
var | The environment variable to search for. |
* Searches the environment list to find the environment variable var, and * returns a pointer to the corresponding value string. * * .. versionadded:: 1.12 *
qi::os::gethostname | ( | ) |
Get the system's hostname.
qi::os::getMachineId | ( | ) |
Returns an unique uuid for the machine.
The UUID is stored on disk and will stay unchanged as long as it is not removed. All programs running on the same machine will have the same UUID returned. An empty string is returned on failure.
qi::os::getpid | ( | ) |
Get the process identifier.
qi::os::gettid | ( | ) |
Get the thread identifier.
qi::os::gettimeofday | ( | qi::os::timeval * | tp | ) |
The gettimeofday() function shall obtain the current time.
tp | The timeval structure used to return the current time. |
The gettimeofday() function shall obtain the current time, expressed as seconds and microseconds since the Epoch, and store it in the timeval structure pointed to by tp. The resolution of the system clock is unspecified. This clock is subject to NTP adjustments.
qi::os::home | ( | ) |
Return path to the current user's HOME.
qi::os::hostIPAddrs | ( | bool | ipv6Addr = false | ) |
Find all network adapters and corresponding IPs.
ipv6Addr | Look for IPv6 addresses instead of IPv4 ones. |
* .. versionadded:: 1.14 *
int qi::os::isatty | ( | int | fd = 1 | ) |
qi::os::kill | ( | int | pid, |
int | sig | ||
) |
Send a signal to a process.
pid | PID to kill. |
sig | Signal to deliver to the process. |
* The kill() function shall send a signal to a process or a group of processes * specified by pid. * * Return value (rc): * * - rc = 0 means that everything went well. * - rc != 0 means that an error occurred. (For instance, no process * corresponding to the pid was found). * * .. versionadded:: 1.14 *
size_t qi::os::memoryUsage | ( | unsigned int | pid | ) |
qi::os::mktmpdir | ( | const char * | prefix = "" | ) |
Return a writable temporary directory.
prefix | Prefix of the tmp file (in UTF-8). |
* The caller is responsible for destroying the returned directory. This will * create a unique directory in the temporary directory returned by * :cpp:func:`qi::os::tmp()`. * * The specified prefix will be prepended to a uniquely generated name. * * .. versionadded:: 1.12.1 *
qi::os::msleep | ( | unsigned int | milliseconds | ) |
Sleep for the specified number of milliseconds.
milliseconds | Number of milliseconds to sleep. |
* Under Linux/OSX it will not be disturbed by eventual signals sent to process. * Makes the calling thread sleep until millliseconds have elapsed or a signal * which is not ignored arrives. * * .. seealso:: :cpp:func:`qi::os::sleep(unsigned int)` * * .. versionadded:: 1.12 *
long qi::os::numberOfCPUs | ( | ) |
qi::os::timeval qi::os::operator+ | ( | const qi::os::timeval & | lhs, |
const qi::os::timeval & | rhs | ||
) |
qi::os::timeval qi::os::operator+ | ( | const qi::os::timeval & | lhs, |
long | us | ||
) |
qi::os::timeval qi::os::operator- | ( | const qi::os::timeval & | lhs, |
const qi::os::timeval & | rhs | ||
) |
qi::os::timeval qi::os::operator- | ( | const qi::os::timeval & | lhs, |
long | us | ||
) |
bool qi::os::setCurrentThreadCPUAffinity | ( | const std::vector< int > & | cpus | ) |
qi::os::setCurrentThreadName | ( | const std::string & | name | ) |
Set the current thread name to the string in parameter.
name | The new name of the current thread. |
int qi::os::setenv | ( | const char * | var, |
const char * | value | ||
) |
void qi::os::sleep | ( | unsigned int | seconds | ) |
int qi::os::snprintf | ( | char * | str, |
size_t | size, | ||
const char * | format, | ||
... | |||
) |
int qi::os::spawnlp | ( | const char * | argv, |
... | |||
) |
int qi::os::spawnvp | ( | char *const | argv[] | ) |
int qi::os::stat | ( | const char * | filename, |
struct stat * | pstat | ||
) |
char* qi::os::strdup | ( | const char * | src | ) |
int qi::os::system | ( | const char * | command | ) |
std::string qi::os::timezone | ( | ) |
std::string qi::os::tmp | ( | ) |
QI_API_DEPRECATED std::string qi::os::tmpdir | ( | const char * | prefix = "" | ) |
qi::int64_t qi::os::ustime | ( | ) |
int qi::os::waitpid | ( | int | pid, |
int * | status | ||
) |