Basic chsvlib namespace. More...
Namespaces | |
| Exceptions | |
| A namespace for chsvlib generic exception classes and for special helper function. | |
| ExecutionControl | |
| A namespace of execution control facilities. | |
| Math | |
| A namespace containing mathematical functions and components. | |
| Memory | |
| A namespace of functions and components used to work with memory. | |
| String | |
| A namespace of string manipulation functions and classes. | |
| Win32 | |
| Axillary chsvlib elements simplifying calls to Win32 API. | |
Classes | |
| struct | IErrorInfo |
| An interface that must be implemented by any class implementing an object to hold error information processed by the SetLastChsvErrorInformation and GetLastChsvErrorInfo. More... | |
| class | chsvlib_general_category_t |
| A class of general chsvlib error category, which is introduced to conform std::system_error requirements. More... | |
| struct | chsvtag_HCHSVLIST |
| struct | chsvtag_HCHSVMAP |
| struct | identity |
| struct | is_swappable_with |
| C++14 compliant implementation of std::is_swappable_with from <type_traits> of C++17. More... | |
| struct | is_nothrow_swappable_with |
| C++14 compliant implementation of std::is_nothrow_swappable_with from <type_traits> of C++17. More... | |
| struct | is_swappable |
| C++14 compliant implementation of std::is_swappable from <type_traits> of C++17. More... | |
| struct | is_nothrow_swappable |
| C++14 compliant implementation of std::is_swappable from <type_traits> of C++17. More... | |
| struct | integral_sequence |
| A type used to unpack tuples and pass its elements as a sequence of parameters via std::get <ind>(tuple_object)... . The type can be obtained at compile time using the integral_sequence_maker metafunction. More... | |
| struct | integral_sequence_maker |
| For a given size provides a type member "type" specifying an integral sequence (inclusively starting from 0 to the sequence_size - 1) of the integral_sequence type. Used to sequentially extract parameters of a variadic template like std::tuple during a function call. More... | |
| struct | function_traits |
| Provides traits of a Callable type: return type, parameter types, and a number of parameters. More... | |
| struct | is_reference_wrapper |
| Checks whether a type T is an std::reference_wrapper object. Inherits from the resulting std::integral_constant instantiation. More... | |
| struct | is_equality_comparable |
| Checks whether a type T satisfies the EqualityComparable requirements. More... | |
| struct | is_testable_by_negation |
Checks whether a type T supports an unary negation operator, that is whether for an object T x an expression !x would be well-formed and convertible to bool. More... | |
| struct | iteratable_type_traits |
| If the specified type is iteratable, the class inherits members of std::iterator_traits specialized for the iterator of the specified type. More... | |
| struct | is_iteratable_type |
| Checks whether a given type is iteratable. More... | |
Typedefs | |
| typedef std::int32_t | chsverror_t |
| A type alias for chsvlib error codes. | |
| typedef unsigned long | chsv_syserror_t |
| A type alias resolving to a platform-defined integral type of system errors. | |
| typedef void(* | security_constraint_violation_procedure) (const char *file, unsigned line, const char *func) |
| A type alias for a pointer to a procedure used to react upon a runtime constraint violation as defined in the ISO-IEC TR 24731-1 specification. More... | |
| typedef bool(* | LPLISTELEMENTFUNCTION) (void *lpListElement, void *lpArg) |
| A client callback function used in the function ListApplyFuncToElements() as a procedure over each element of the list. More... | |
| typedef int(* | PMAPCOMPAREFUNC) (const void *pLeft, std::size_t cbLeft, const void *pRight, std::size_t cbRight) NOEXCEPT_CPP17 |
| A pointer to a compare function implementing a binary predicate over data in buffers pointed by the function parameters. More... | |
| typedef bool(* | PMAPELEMENTFUNCTION) (const void *pKey, std::size_t cbKey, void *pValue, std::size_t cbValue, void *lpArg) NOEXCEPT_CPP17 |
| A client callback function used in the MapApplyFuncToElements function as a procedure over each element of the map. More... | |
| template<class T > | |
| using | identity_t = typename identity< T >::type |
| Introduces type dependency to prohibit template argument deduction. More... | |
| template<class... Ts> | |
| using | void_t = void |
Enumerations | |
| enum | OnErrorInfoFailture { ERROR_INFO_INIT_FAILED } |
| The constant ERROR_INFO_INIT_FAILED is used as a marker for constructors of the CErrorInfoImpl template class parameter of the SetLastChsvErrorInformation function. More... | |
| enum class | chsvlib_error { out_of_memory = (signed int) CHSVERROR_OUTOFMEMORY , invalid_parameter = (signed int) CHSVERROR_INVALID_PARAMETER , insufficient_buffer = (signed int) CHSVERROR_INSUFFICIENT_BUFFER , out_of_range = (signed int) CHSVERROR_OUT_OF_RANGE , initialization_failure = (signed int) CHSVERROR_INITIALIZATION_FAILURE , not_initialized = (signed int) CHSVERROR_NOT_INITIALIZED , already_initialized = (signed int) CHSVERROR_ALREADY_INITIALIZED , invalid_version = (signed int) CHSVERROR_INVALID_VERSION , entity_not_found = (signed int) CHSVERROR_NOT_FOUND , entity_already_exists = (signed int) CHSVERROR_ALREADY_EXISTS , invalid_resource = (signed int) CHSVERROR_INVALID_RESOURCE , access_denied = (signed int) CHSVERROR_ACCESS_DENIED , storage_is_full = (signed int) CHSVERROR_STORAGE_FULL , invalid_char_sequence = (signed int) CHSVERROR_INVALID_CHAR_SEQUENCE , operation_cancelled = (signed int) CHSVERROR_OPERATION_CANCELLED , name_too_long = (signed int) CHSVERROR_NAME_TOO_LONG , deadlock = (signed int) CHSVERROR_DEADLOCK , timeout = (signed int) CHSVERROR_TIMEOUT , owner_dead = (signed int) CHSVERROR_OWNER_IS_DEAD , operation_not_supported = (signed int) CHSVERROR_NOT_SUPPORTED , arithmetic_overflow = (signed int) CHSVERROR_ARITHMETIC_OVERFLOW , stack_overflow = (signed int) CHSVERROR_STACK_OVERFLOW , underlying_platform_error = (signed int) CHSVERROR_PLATFORM_ERROR , program_logic_error = (signed int) CHSVERROR_LOGIC_ERROR } |
| A strongly typed enumeration with values equal to existing chsvlib error codes. . More... | |
Functions | |
| errno_t | Win32ErrorToPosixError (unsigned long nError) noexcept |
| Translates a Windows system error code to a POSIX error code. . More... | |
| chsverror_t | Win32ErrorToChsvError (unsigned long nError) noexcept |
| Translates a Windows system error code to the corresponding chsvlib error code. More... | |
| chsverror_t | PosixErrorToChsvError (errno_t nError) noexcept |
| Translates a POSIX error code to the corresponding chsvlib error code. More... | |
| chsverror_t | SystemErrorToChsvError (chsv_syserror_t err) |
| Delegates a call to a platform-dependent function which translates a system error to a corresponding chsvlib error code in a portable way. More... | |
| chsv_syserror_t | GetLastSystemError () |
| Returns a platform-specific last-error code, i.e. Windows error on Windows (delegates a call to GetLastError) and POSIX error on Linux (see errno). . More... | |
| errno_t | GetLastSystemErrorAsPosixCode () |
| Returns a platform-specific last-error code represented in POSIX error code space. More... | |
| chsverror_t | CHSV_MAKE_CHSV_ERROR (unsigned short nSpecCode) |
| The function creating chsvlib error code from the general facility. More... | |
| const wchar_t * | ChsvErrorDescriptionW (chsverror_t nErrorCode, unsigned long nReserved) noexcept |
| Returns a wide string description on the specified chsvlib error code. More... | |
| const char * | ChsvErrorDescriptionA (chsverror_t nErrorCode, unsigned long nReserved) noexcept |
| Returns an multi-byte string description on the specified chsvlib error code. More... | |
| template<class char_type > | |
| const char_type * | ChsvErrorDescription (chsverror_t nErrorCode, unsigned long nReserved=0) noexcept |
| Returns an string description on the specified chsvlib error code. More... | |
| void | SetLastChsvError (chsverror_t nError) noexcept |
| Sets the specified chsvlib code as a thread specific last error code. More... | |
| chsverror_t | GetLastChsvError () noexcept |
| Returns the last thread specific chsvlib error code. More... | |
| void | SetLastChsvErrorInfo (chsverror_t nError, const void *pExtraInfo, std::size_t cbExtraInfo) noexcept |
| Sets the a thread specific last error code along with additional data that is supposed to provide extra information about the error. More... | |
| const CHSV_ERROR_INFO * | GetLastChsvErrorInfo () noexcept |
| Returns a pointer to the CHSV_ERROR_INFO structure containing definition of the last chsvlib error code. More... | |
| void | security_constraint_assertion_proc (const char *file, unsigned line, const char *func) noexcept |
Upon a call, if NDEBUG macro is not defined, prints out a message composed from two strings, and an integer, and calls std::abort. If NDEBUG is defined, the function does nothing. More... | |
| void | security_constraint_verification_proc (const char *file, unsigned line, const char *func) noexcept |
| Upon a call prints out a message composed from two strings, and an integer, and calls std::abort. More... | |
| security_constraint_violation_procedure | set_thread_security_constraint_violation_procedure (security_constraint_violation_procedure proc) noexcept |
| Sets a procedure called when a security violation defined by ISO-IEC TR 24731-1 is detected via verify_security_constraint. More... | |
| template<class CErrorInfoImpl > | |
| void | SetLastChsvErrorInformation (unsigned long nError, const CErrorInfoImpl &refErrorInfo) noexcept |
| The function setting the last chsvlib error code and its description. More... | |
| template<class CErrorInfoImpl > | |
| CErrorInfoImpl | GetLastChsvErrorInformation () |
| Returns the last extra error description as specified by a call to SetLastChsvErrorInfo(unsigned long nError, const CErrorInfoImpl& refErrorInfo) NOTHROW. More... | |
| void | SetLastChsvErrorWC (chsverror_t nChsvError) noexcept |
| Sets last chsvlib error code together with win32 error code and C error code. The last two codes are set to ERROR_SUCCESS and 0 respectively. More... | |
| void | SetLastChsvErrorInfoWC (chsverror_t nChsvError, unsigned long nWin32Error, errno_t nCError) noexcept |
| Sets last chsvlib error code together with win32 error code and C error code. More... | |
| unsigned long | GetLastChsvErrorWin32 () noexcept |
| Returns last Windows error code. More... | |
| errno_t | GetLastChsvErrorC () noexcept |
| Returns last C error code. More... | |
| const std::error_category & | chsvlib_general_category () noexcept |
| Returns a reference to a general error category to generate std::system_error exceptions based on chsvlib error codes. | |
| std::error_condition | make_error_condition (chsvlib_error err) |
| Creates and returns a new std::error_condition based on a value of chsvlib_error enumeration type. . More... | |
| std::error_code | make_error_code (chsvlib_error err) |
| Creates and returns an error code object in the form of the standard std::error_code class based on the specified value of the chsvlib_error enumeration type. . More... | |
| EXTERN_C HCHSVLIST | CreateList () noexcept |
| Creates a binary growing list. More... | |
| EXTERN_C bool | CloseList (HCHSVLIST hList) noexcept |
| Closes the list and frees occupied resources. More... | |
| EXTERN_C bool | ListPushBackValueByPtr (HCHSVLIST hList, void *lpVal) noexcept |
| Inserts a pointer to the end of the list without copying any pointed data. More... | |
| EXTERN_C bool | ListPushFrontValueByPtr (HCHSVLIST hList, void *lpVal) noexcept |
| Inserts a pointer to the beginning of the list without copying any pointed data. More... | |
| EXTERN_C bool | ListPushBackValueByValue (HCHSVLIST hList, const void *lpVal, std::size_t nValueSize) noexcept |
| Creates the last element of the list and copies data into its buffers. More... | |
| EXTERN_C bool | ListPushFrontValueByValue (HCHSVLIST hList, const void *lpVal, std::size_t nValueSize) noexcept |
| Creates the first element of the list and copies data into its buffers. More... | |
| EXTERN_C void * | ListFrontData (HCHSVLIST hList) noexcept |
| Returns a pointer to data at the beginning of the list. More... | |
| EXTERN_C void * | ListBackData (HCHSVLIST hList) noexcept |
| Returns a pointer to data at the end of the list. More... | |
| EXTERN_C bool | ListPopFront (HCHSVLIST hList) noexcept |
| Removes the first element of the list and frees occupied resources. More... | |
| EXTERN_C bool | ListPopBack (HCHSVLIST hList) noexcept |
| Removes the last element of the list and frees occupied resources. More... | |
| EXTERN_C std::size_t | ListGetSize (HCHSVLIST hList) noexcept |
| Returns a number of elements in the list. More... | |
| EXTERN_C HCHSVLISTITERATOR | ListBegin (HCHSVLIST hList) noexcept |
| Returns a handle to the iterator bound with the first element of the list. More... | |
| EXTERN_C HCHSVLISTITERATOR | ListEnd (HCHSVLIST hList) noexcept |
| Returns a handle to the iterator bound with the last element of the list. More... | |
| EXTERN_C HCHSVLISTITERATOR | ListIterPrev (HCHSVLISTITERATOR hListIterator) noexcept |
| Returns a handle to the iterator bound with the element located before the element bound with the specified iterator. More... | |
| EXTERN_C HCHSVLISTITERATOR | ListIterNext (HCHSVLISTITERATOR hListIterator) noexcept |
| Returns a handle to the iterator bound with the element located after the element bound with the specified iterator. More... | |
| EXTERN_C void * | ListGetDataFromIter (HCHSVLISTITERATOR hListIterator) noexcept |
| Returns a pointer to data bound with the specified iterator. More... | |
| EXTERN_C std::size_t | ListGetDataSizeFromIter (HCHSVLISTITERATOR hListIterator) noexcept |
| Returns a size of the data bound with the specified iterator. More... | |
| EXTERN_C bool | ListIterSetValueByPtr (HCHSVLISTITERATOR hListIterator, void *pData) noexcept |
| Replaces data of an element bound with the specified iterator by a new pointer without any copying operations. More... | |
| EXTERN_C bool | ListIterSetValueByValue (HCHSVLISTITERATOR hListIterator, const void *pData, std::size_t nDataSize) noexcept |
| Replaces data of an element bound with the specified iterator by contents of a pointer with per byte copying operation. More... | |
| EXTERN_C bool | ListInsertValueAfterIterByPtr (HCHSVLISTITERATOR hListIterator, void *lpData) noexcept |
| Creates a new list element with by-pointer insertion to the position after the one specified by the iterator. More... | |
| EXTERN_C bool | ListInsertValueBeforeIterByPtr (HCHSVLISTITERATOR hListIterator, void *lpData) noexcept |
| Creates a new list element with by-pointer insertion to the position before the one specified by the iterator. More... | |
| EXTERN_C bool | ListInsertValueAfterIterByValue (HCHSVLISTITERATOR hListIterator, const void *lpData, std::size_t nDataSize) noexcept |
| Creates a new list element to the position after the one specified by the iterator copying the specified content to the internal buffers. More... | |
| EXTERN_C bool | ListInsertValueBeforeIterByValue (HCHSVLISTITERATOR hListIterator, void *lpData, std::size_t nDataSize) noexcept |
| Creates a new list element to the position before the one specified by the iterator copying the specified content to the internal buffers. More... | |
| EXTERN_C bool | ListPopElementByIter (HCHSVLISTITERATOR hListIterator) noexcept |
| Removes the element identified by the iterator from the list. More... | |
| EXTERN_C bool | ListApplyFuncToElements (HCHSVLIST hList, LPLISTELEMENTFUNCTION lpfnForEach, void *lpArg) |
| Executes the specified callback function over each element of the list. More... | |
| EXTERN_C HCHSVMAP | CreateMapEx (PMAPCOMPAREFUNC pfnCompare, bool fMultimap) noexcept |
| Creates an instance of a map or a multimap. More... | |
| EXTERN_C HCHSVMAP | CreateMap () noexcept |
| Creates a map with the default ordering towards growth of keys with the requirement for the keys to be unique. More... | |
| EXTERN_C HCHSVMAP | CreateMultimapEx (PMAPCOMPAREFUNC pfnCompare) noexcept |
| Creates a multimap with the specified ordering predicate. More... | |
| EXTERN_C HCHSVMAP | CreateMultimap () noexcept |
| Creates a multimap with the default ordering of map elements towards growth of their keys . More... | |
| EXTERN_C bool | CloseMap (HCHSVMAP hMap) noexcept |
| Closes an instance of a map or a multimap freeing occupied resources. More... | |
| EXTERN_C bool | MapInsert (HCHSVMAP hMap, const void *pKey, std::size_t cbKey, const void *pValue, std::size_t cbValue) noexcept |
| Inserts a new element by value to the specified map. The data in the parameter is copied into the internal buffers bound to elements. More... | |
| EXTERN_C bool | MapInsertByPtr (HCHSVMAP hMap, const void *pKey, std::size_t cbKey, void *pValue) noexcept |
| Inserts a new element by pointer. Only the pointers to the key and value data are stored, pointed memory is neither managed or freed by the map. More... | |
| EXTERN_C HCHSVMAPITERATOR | MapFind (HCHSVMAP hMap, const void *pKey, std::size_t cbKey) noexcept |
| The function returns an iterator bound with an element identified by the key. In a case of the multimap with multiple elements of the same key requested by the call, the iterator of the first of them is returned. See remarks. More... | |
| EXTERN_C HCHSVMAPITERATOR | MapBegin (HCHSVMAP hMap) noexcept |
| The function returns an iterator bound with the first map element. More... | |
| EXTERN_C HCHSVMAPITERATOR | MapEnd (HCHSVMAP hMap) noexcept |
| The function returns an iterator bound with the last existing map element. More... | |
| EXTERN_C HCHSVMAPITERATOR | MapIterPrev (HCHSVMAPITERATOR hMapIter) noexcept |
| The function returns an iterator preceding the specified one or NULL if there are no preceding elements. More... | |
| EXTERN_C HCHSVMAPITERATOR | MapIterNext (HCHSVMAPITERATOR hMapIter) noexcept |
| The function returns an iterator following the specified one or NULL if there are no following elements. More... | |
| EXTERN_C bool | MapErase (HCHSVMAP hMap, HCHSVMAPITERATOR hWhere) noexcept |
| The function removes an element specified by the iterator from the map. More... | |
| EXTERN_C std::size_t | MapGetSize (HCHSVMAP hMap) noexcept |
| The function returns a number of elements the map contains. More... | |
| EXTERN_C const void * | MapGetKeyFromIter (HCHSVMAPITERATOR hMapIter) noexcept |
| The function returns a pointer to key data of the specified element. More... | |
| EXTERN_C void * | MapGetDataFromIter (HCHSVMAPITERATOR hMapIter) noexcept |
| The function returns a pointer to value data of the specified element. More... | |
| EXTERN_C std::size_t | MapGetKeySizeFromIter (HCHSVMAPITERATOR hMapIter) noexcept |
| The function returns a length, in bytes, of the key of the specified element. More... | |
| EXTERN_C std::size_t | MapGetDataSizeFromIter (HCHSVMAPITERATOR hMapIter) noexcept |
| The function returns a length, in bytes, of value data of the specified element inserted by value (with copying) or zero if the element has been inserted by pointer. More... | |
| EXTERN_C bool | MapApplyFuncToElements (HCHSVMAP hMap, PMAPELEMENTFUNCTION lpfnCallback, void *lpCallbackArg) |
| The function implements calling the specified callback function called over each element of the map. More... | |
| template<class F , class... ArgTypes> | |
| auto | invoke (F &&f, ArgTypes &&... args) noexcept(noexcept(Implementation::INVOKE(std::forward< F >(f), std::forward< ArgTypes >(args)...))) -> decltype(Implementation::INVOKE(std::forward< F >(f), std::forward< ArgTypes >(args)...)) |
| Invokes a Callable object with a given set of arguments. Implements behaviour of the C++17 std::invoke function via C++11. More... | |
| template<class To , class From > | |
| constexpr bool | cast_overflows (From val) noexcept |
| Checks whether conversion of the parameter to the given type would overflow. More... | |
| template<class T > | |
| constexpr auto | to_signed (T val) |
| Attempts to converts an integral to its signed form without losing information and throws an exception, if that is not possible. More... | |
| unsigned long long | get_x86_cpu_info () noexcept |
| Returns a bit mask indicating a support by the current processor of various Intel x86 and Intel x86-64 CPU extensions. More... | |
| int | gmtime (const std::time_t *restrict tp, std::tm *restrict pResult) noexcept |
| Converts time passed since the epoch on the target machine and specified as a time_t variable into calendar UTC time expressed by an object of the type tm. More... | |
| int | localtime (const time_t *restrict tp, struct tm *restrict pResult) noexcept |
| Converts time passed since the epoch on the target machine and specified as a time_t variable into local calendar time expressed by an object of the type tm. More... | |
| std::chrono::system_clock::duration | local_zone_get () |
| Returns the local time zone expressed as time duration relative to UTC time. More... | |
| HRESULT | Win32DlgErrorToWin32Error (DWORD dwCommDlgExtendedError) noexcept |
| Translates a Windows dialogue error code to the corresponding Windows system error code. More... | |
| chsverror_t | Win32DlgErrorToChsvError (DWORD dwCommDlgExtendedError) noexcept |
| Translates a Windows dialogue error code to the corresponding chsvlib error code. More... | |
Variables | |
| template<class T , class U > | |
| constexpr bool | is_swappable_with_v |
| C++14 compliant implementation of std::is_swappable_with_v from <type_traits> of C++17. More... | |
| template<class T , class U > | |
| constexpr bool | is_nothrow_swappable_with_v |
| C++14 compliant implementation of std::is_nothrow_swappable_with_v from <type_traits> of C++17. More... | |
| template<class T > | |
| constexpr bool | is_swappable_v |
| C++14 compliant implementation of std::is_swappable from <type_traits> of C++17. More... | |
| template<class T > | |
| constexpr bool | is_nothrow_swappable_v |
| C++14 compliant implementation of std::is_nothrow_swappable_v from <type_traits> of C++17. More... | |
| template<class T > | |
| constexpr bool | is_iteratable_type_v = is_iteratable_type<T>::value |
Resolves to true, if a given type is iteratable, and to false otherwise. More... | |
Basic chsvlib namespace.
DOXYGEN.