stub_analytics_plugin  1.6
Network Optix Video Analytics SDK
Macros | Functions
utils.h File Reference
#include <cstddef>
#include <cstring>
#include <cstdlib>
#include <memory>
#include <string>
#include <sstream>

Go to the source code of this file.

Macros

#define NX_KIT_API   /*empty*/
 

Functions

bool nx::kit::utils::isAsciiPrintable (int c)
 
template<typename T >
std::string nx::kit::utils::toString (T value)
 
template<typename... Args>
std::string nx::kit::utils::format (const std::string &formatStr, Args... args)
 
size_t nx::kit::utils::alignUp (size_t value, size_t alignment)
 
uint8_t * nx::kit::utils::misalignedPtr (void *data)
 
template<class MallocFunc >
void * nx::kit::utils::mallocAligned (size_t size, size_t alignment, MallocFunc mallocFunc)
 
void * nx::kit::utils::mallocAligned (size_t size, size_t alignment)
 
template<class FreeFunc >
void nx::kit::utils::freeAligned (void *ptr, FreeFunc freeFunc)
 
void nx::kit::utils::freeAligned (void *ptr)
 
std::string nx::kit::utils::toString (std::string s)
 
std::string nx::kit::utils::toString (uint8_t i)
 
std::string nx::kit::utils::toString (char c)
 
std::string nx::kit::utils::toString (const char *s)
 
std::string nx::kit::utils::toString (char *s)
 
std::string nx::kit::utils::toString (const void *ptr)
 
std::string nx::kit::utils::toString (void *ptr)
 
std::string nx::kit::utils::toString (std::nullptr_t ptr)
 
std::string nx::kit::utils::toString (bool b)
 
template<typename P >
std::string nx::kit::utils::toString (P *ptr)
 

Detailed Description

Various utilities. Used by other nx_kit components.

This unit can be compiled in the context of any C++ project. If Qt headers are included before this one, some Qt support is enabled via "#if defined(QT_CORE_LIB)".

Function Documentation

◆ alignUp()

size_t nx::kit::utils::alignUp ( size_t  value,
size_t  alignment 
)
inline

Aligns value up to alignment boundary.

Parameters
alignmentIf zero, value is returned unchanged.

◆ freeAligned() [1/2]

template<class FreeFunc >
void nx::kit::utils::freeAligned ( void *  ptr,
FreeFunc  freeFunc 
)

Free ptr allocated with a call to mallocAligned().

NOTE: This function is as safe as ::free().

Parameters
freeFuncFunction with the signature void(void*), which is called to free the memory.

◆ freeAligned() [2/2]

void nx::kit::utils::freeAligned ( void *  ptr)
inline

Calls freeAligned() passing standard free() as freeFunc.

◆ mallocAligned() [1/2]

template<class MallocFunc >
void* nx::kit::utils::mallocAligned ( size_t  size,
size_t  alignment,
MallocFunc  mallocFunc 
)

Allocates size bytes of data, aligned to alignment boundary.

NOTE: Allocated memory must be freed with a call to freeAligned(). NOTE: This function is as safe as malloc().

Parameters
mallocFuncFunction with the signature void*(size_t), which is called to allocate memory.

◆ mallocAligned() [2/2]

void* nx::kit::utils::mallocAligned ( size_t  size,
size_t  alignment 
)
inline

Calls mallocAligned() passing standard malloc() as mallocFunc.

◆ misalignedPtr()

uint8_t* nx::kit::utils::misalignedPtr ( void *  data)
inline

Shifts the pointer up to deliberately misalign it to an odd address - intended for tests.

◆ toString()

template<typename T >
std::string nx::kit::utils::toString ( value)

Convert a value to its report-friendly text representation, e.g. a quoted and escaped string.