📄 ofstd.h
字号:
* and has to to be freed (using "delete[]") by the caller! Do not pass a pointer to an * already allocated buffer to this function, the caller does not know the exact size anyway. ** @param data Base64 encoded input data (possibly padded with '=' at the end) * @param result receives pointer to resulting buffer with binary data (big endian encoded) ** @return length of the resulting binary data (0 if an error occurred, in this case the buffer * is deleted internally) */ static size_t decodeBase64(const OFString &data, unsigned char *&result); /** converts a floating-point number from an ASCII * decimal representation to internal double-precision format. * Unlike the atof() function defined in Posix, this implementation * is not affected by a locale setting, the radix character is always * assumed to be '.' * This implementation does not set errno if the input cannot be parsed * and it does not implement special handling for overflow/underflow * or NaN values. However, a return code indicates whether or not * a successful conversion could be performed. * The precision of this implementation is limited to approx. 9 * decimal digits. * The use of this implementation can be disabled by defining * the macro DISABLE_OFSTD_ATOF at compile time; in this case, * the locale dependent Posix implementation of sscanf is used and * the application is responsible for making sure that the Posix locale * is activated at all times. * * @param s * A decimal ASCII floating-point number, optionally preceded by white * space. Must have form "-I.FE-X", where I is the integer part of the * mantissa, F is the fractional part of the mantissa, and X is the * exponent. Either of the signs may be "+", "-", or omitted. Either I * or F may be omitted, or both. The decimal point isn't necessary * unless F is present. The "E" may actually be an "e". E and X may both * be omitted (but not just one). * @param success pointer to return status code, may be NULL. * if present, a status code is stored in the variable pointed to by this * parameter. The status is OFTrue if a conversion could be performed * and OFFalse if the string does not have the expected format. * @return * floating-point equivalent of string. * If a terminating character is found before any floating-point * digits, then zero is returned. */ static double atof(const char *s, OFBool *success = NULL); /** formats a floating-point number into an ASCII string. * This function works similar to sprintf(), except that this * implementation is not affected by a locale setting. * The radix character is always '.'. * * This implementation guarantees that the given string size * is always respected by using strlcpy to copy the formatted * string into the target buffer. * * The use of this implementation can be disabled by defining * the macro DISABLE_OFSTD_FTOA at compile time; in this case, * the locale dependent Posix implementation of sprintf is used and * the application is responsible for making sure that the Posix locale * is activated at all times. * * @param target pointer to target string buffer * @param targetSize size of target string buffer * @param value double value to be formatted * @param flags processing flags. Any of the flags defined below * can be combined by bit-wise or. * @param width width from format (%8d), or 0 * @param precision precision from format (%.3d), or -1 */ static void ftoa(char *target, size_t targetSize, double value, unsigned int flags = 0, int width = 0, int precision = -1); /** @name ftoa() processing flags. * These flags can be combined by bit-wise or. */ //@{ /// Use %e or %E conversion format instead of %g or %G static const unsigned int ftoa_format_e; /// Use %f or %F conversion format instead of %g or %G static const unsigned int ftoa_format_f; /// Use %E, %F or %G conversion format instead of %e, %f or %g static const unsigned int ftoa_uppercase; /** convert value to alternate form. The result will always contain * a decimal point, even if no digits follow the point. For g and G * conversions, trailing zeroes will not be removed from the result. */ static const unsigned int ftoa_alternate; /// left-justify number be within the field static const unsigned int ftoa_leftadj; /// pad with zeroes instead of blanks static const unsigned int ftoa_zeropad; //@} /** Checks if a given string consists only of characters which are specified in a * given charset. Note that in case one of the parameters equals NULL, OFTrue will * be returned. * @param str String which shall be checked. * @param charset Possible character set for s. * @return OFTrue if the given string consists only of characters which are specified * in the given charset; OFFalse otherwise. */ static OFBool stringMatchesCharacterSet( const char *str, const char *charset ); /** makes the current process sleep until seconds seconds have * elapsed or a signal arrives which is not ignored. * @param seconds number of seconds to sleep * @return Zero if the requested time has elapsed, or the number of seconds left to sleep. */ static inline unsigned int sleep(unsigned int seconds) {#if defined(HAVE_SLEEP) && !defined(HAVE_WINDOWS_H) // we only use this call if HAVE_WINDOWS_H is undefined because // MinGW has sleep() but no prototype return ::sleep(seconds);#else return my_sleep(seconds);#endif } private: /** private implementation of strlcpy. Called when strlcpy * is not available in the standard library. * @param dst destination buffer of size siz, must not be NULL * @param src source string, must not be NULL * @param siz size of destination buffer * @return the total length of the string the function tried to * create, i.e. strlen(src). */ static size_t my_strlcpy(char *dst, const char *src, size_t siz); /** private implementation of strlcat. Called when strlcat * is not available in the standard library. * @param dst destination buffer of size siz, must not be NULL * @param src source string, must not be NULL * @param siz size of destination buffer * @return the total length of the string the function tried to * create, i.e. the initial length of dst plus the length of src. */ static size_t my_strlcat(char *dst, const char *src, size_t siz); /** makes the current process sleep until seconds seconds have * elapsed or a signal arrives which is not ignored. * @param seconds number of seconds to sleep * @return Zero if the requested time has elapsed, or the number of seconds left to sleep. */ static unsigned int my_sleep(unsigned int seconds);};#endif/* * * CVS/RCS Log: * $Log: ofstd.h,v $ * Revision 1.23 2005/12/08 16:06:04 meichel * Changed include path schema for all DCMTK header files * * Revision 1.22 2004/08/03 11:45:42 meichel * Headers libc.h and unistd.h are now included via ofstdinc.h * * Revision 1.21 2004/04/16 12:43:26 joergr * Restructured code to avoid default parameter values for "complex types" like * OFString. Required for Sun CC 2.0.1. * * Revision 1.20 2003/12/05 10:37:41 joergr * Removed leading underscore characters from preprocessor symbols (reserved * symbols). Updated copyright date where appropriate. * * Revision 1.19 2003/08/12 13:10:10 joergr * Improved implementation of normalizeDirName(). * * Revision 1.18 2003/07/17 14:53:24 joergr * Added new function searchDirectoryRecursively(). * Updated documentation to get rid of doxygen warnings. * * Revision 1.17 2003/07/04 13:31:51 meichel * Fixed issues with compiling with HAVE_STD_STRING * * Revision 1.16 2003/07/03 14:23:50 meichel * Minor changes to make OFStandard::sleep compile on MinGW * * Revision 1.15 2003/06/06 09:43:54 meichel * Added static sleep function in class OFStandard. This replaces the various * calls to sleep(), Sleep() and usleep() throughout the toolkit. * * Revision 1.14 2003/04/17 15:50:51 joergr * Replace LF and CR by and in XML mode instead of ¶ (para). * * Revision 1.13 2003/03/12 14:57:47 joergr * Added apostrophe (') to the list of characters to be replaced by the * corresponding HTML/XML mnenonic. * * Revision 1.12 2002/12/13 13:45:33 meichel * Removed const from decodeBase64() return code, needed on MIPSpro * * Revision 1.11 2002/12/05 13:49:36 joergr * Moved definition of ftoa() processing flags to implementation file to avoid * compiler errors (e.g. on Sun CC 2.0.1). * * Revision 1.10 2002/12/04 09:13:00 meichel * Implemented a locale independent function OFStandard::ftoa() that * converts double to string and offers all the flexibility of the * sprintf family of functions. * * Revision 1.9 2002/11/27 11:23:06 meichel * Adapted module ofstd to use of new header file ofstdinc.h * * Revision 1.8 2002/07/02 15:17:57 wilkens * Added function OFStandard::stringMatchesCharacterSet(...). * * Revision 1.7 2002/06/20 12:02:38 meichel * Implemented a locale independent function OFStandard::atof() that * converts strings to double and optionally returns a status code * * Revision 1.6 2002/05/14 08:12:51 joergr * Added support for Base64 (MIME) encoding and decoding. * * Revision 1.5 2002/04/25 09:13:52 joergr * Moved helper function which converts a conventional character string to an * HTML/XML mnenonic string (e.g. using "<" instead of "<") from module * dcmsr to ofstd. * * Revision 1.4 2002/04/11 12:06:42 joergr * Added general purpose routines to check whether a file exists, a path points * to a directory or a file, etc. * * Revision 1.3 2001/12/04 16:57:15 meichel * Implemented strlcpy and strlcat routines compatible with the * corresponding BSD libc routines in class OFStandard * * Revision 1.2 2001/06/01 15:51:35 meichel * Updated copyright header * * Revision 1.1 2000/03/02 12:42:57 joergr * Added new class comprising all general purpose helper functions (first * entry: strlcpy - a mixture of strcpy and strncpy). * * * */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -