📄 config.h
字号:
/** * Specify this as \a stack_size argument in #pj_thread_create() to specify * that thread should use default stack size for the current platform. * * Default: 8192 */#ifndef PJ_THREAD_DEFAULT_STACK_SIZE # define PJ_THREAD_DEFAULT_STACK_SIZE 8192#endif/** * Do we have alternate pool implementation? * * Default: 0 */#ifndef PJ_HAS_POOL_ALT_API# define PJ_HAS_POOL_ALT_API PJ_POOL_DEBUG#endif/** * \def PJ_HAS_TCP * Support TCP in the library. * Disabling TCP will reduce the footprint slightly (about 6KB). * * Default: 1 */#ifndef PJ_HAS_TCP# define PJ_HAS_TCP 1#endif/** * Maximum hostname length. * Libraries sometimes needs to make copy of an address to stack buffer; * the value here affects the stack usage. * * Default: 128 */#ifndef PJ_MAX_HOSTNAME# define PJ_MAX_HOSTNAME (128)#endif/** * Constants for declaring the maximum handles that can be supported by * a single IOQ framework. This constant might not be relevant to the * underlying I/O queue impelementation, but still, developers should be * aware of this constant, to make sure that the program will not break when * the underlying implementation changes. * * For implementation based on select(), the value here will be used as the * maximum number of socket handles passed to select() (i.e. FD_SETSIZE will * be set to this value). * * Default: if FD_SETSIZE is defined and the value is greather than 256, * then it will be used. Otherwise 256 (64 for WinCE). */#ifndef PJ_IOQUEUE_MAX_HANDLES# if defined(PJ_WIN32_WINCE) && PJ_WIN32_WINCE!=0# define PJ_IOQUEUE_MAX_HANDLES (64)# else# define PJ_IOQUEUE_MAX_HANDLES (256)# endif#endif/** * If PJ_IOQUEUE_HAS_SAFE_UNREG macro is defined, then ioqueue will do more * things to ensure thread safety of handle unregistration operation by * employing reference counter to each handle. * * In addition, the ioqueue will preallocate memory for the handles, * according to the maximum number of handles that is specified during * ioqueue creation. * * All applications would normally want this enabled, but you may disable * this if: * - there is no dynamic unregistration to all ioqueues. * - there is no threading, or there is no preemptive multitasking. * * Default: 1 */#ifndef PJ_IOQUEUE_HAS_SAFE_UNREG# define PJ_IOQUEUE_HAS_SAFE_UNREG 1#endif/** * When safe unregistration (PJ_IOQUEUE_HAS_SAFE_UNREG) is configured in * ioqueue, the PJ_IOQUEUE_KEY_FREE_DELAY macro specifies how long the * ioqueue key is kept in closing state before it can be reused. * * The value is in miliseconds. * * Default: 500 msec. */#ifndef PJ_IOQUEUE_KEY_FREE_DELAY# define PJ_IOQUEUE_KEY_FREE_DELAY 500#endif/** * Overrides FD_SETSIZE so it is consistent throughout the library. * OS specific configuration header (compat/os_*) might have declared * FD_SETSIZE, thus we only set if it hasn't been declared. * * Default: #PJ_IOQUEUE_MAX_HANDLES */#ifndef FD_SETSIZE# define FD_SETSIZE PJ_IOQUEUE_MAX_HANDLES#endif/** * Has semaphore functionality? * * Default: 1 */#ifndef PJ_HAS_SEMAPHORE# define PJ_HAS_SEMAPHORE 1#endif/** * Event object (for synchronization, e.g. in Win32) * * Default: 1 */#ifndef PJ_HAS_EVENT_OBJ# define PJ_HAS_EVENT_OBJ 1#endif/** * Maximum file name length. */#ifndef PJ_MAXPATH# define PJ_MAXPATH 260#endif/** * Enable library's extra check. * If this macro is enabled, #PJ_ASSERT_RETURN macro will expand to * run-time checking. If this macro is disabled, #PJ_ASSERT_RETURN * will simply evaluate to #pj_assert(). * * You can disable this macro to reduce size, at the risk of crashes * if invalid value (e.g. NULL) is passed to the library. * * Default: 1 */#ifndef PJ_ENABLE_EXTRA_CHECK# define PJ_ENABLE_EXTRA_CHECK 1#endif/** * Enable name registration for exceptions with #pj_exception_id_alloc(). * If this feature is enabled, then the library will keep track of * names associated with each exception ID requested by application via * #pj_exception_id_alloc(). * * Disabling this macro will reduce the code and .bss size by a tad bit. * See also #PJ_MAX_EXCEPTION_ID. * * Default: 1 */#ifndef PJ_HAS_EXCEPTION_NAMES# define PJ_HAS_EXCEPTION_NAMES 1#endif/** * Maximum number of unique exception IDs that can be requested * with #pj_exception_id_alloc(). For each entry, a small record will * be allocated in the .bss segment. * * Default: 16 */#ifndef PJ_MAX_EXCEPTION_ID# define PJ_MAX_EXCEPTION_ID 16#endif/** * Should we use Windows Structured Exception Handling (SEH) for the * PJLIB exceptions. * * Default: 0 */#ifndef PJ_EXCEPTION_USE_WIN32_SEH# define PJ_EXCEPTION_USE_WIN32_SEH 0#endif/** * Should we attempt to use Pentium's rdtsc for high resolution * timestamp. * * Default: 0 */#ifndef PJ_TIMESTAMP_USE_RDTSC# define PJ_TIMESTAMP_USE_RDTSC 0#endif/** * Include error message string in the library (pj_strerror()). * This is very much desirable! * * Default: 1 */#ifndef PJ_HAS_ERROR_STRING# define PJ_HAS_ERROR_STRING 1#endif/** * Include pj_stricmp_alnum() and pj_strnicmp_alnum(), i.e. custom * functions to compare alnum strings. On some systems, they're faster * then stricmp/strcasecmp, but they can be slower on other systems. * When disabled, pjlib will fallback to stricmp/strnicmp. * * Default: 0 */#ifndef PJ_HAS_STRICMP_ALNUM# define PJ_HAS_STRICMP_ALNUM 0#endif/** @} *//******************************************************************** * General macros. *//** * @def PJ_INLINE(type) * @param type The return type of the function. * Expand the function as inline. */#define PJ_INLINE(type) PJ_INLINE_SPECIFIER type/** * @def PJ_DECL(type) * @param type The return type of the function. * Declare a function. *//** * @def PJ_DECL_NO_RETURN(type) * @param type The return type of the function. * Declare a function that will not return. *//** * @def PJ_BEGIN_DECL * Mark beginning of declaration section in a header file. *//** * @def PJ_END_DECL * Mark end of declaration section in a header file. */#ifdef __cplusplus# define PJ_DECL(type) type# define PJ_DECL_NO_RETURN(type) type PJ_NORETURN# define PJ_IDECL_NO_RETURN(type) PJ_INLINE(type) PJ_NORETURN# define PJ_BEGIN_DECL extern "C" {# define PJ_END_DECL }#else# define PJ_DECL(type) extern type# define PJ_DECL_NO_RETURN(type) PJ_NORETURN type# define PJ_IDECL_NO_RETURN(type) PJ_NORETURN PJ_INLINE(type)# define PJ_BEGIN_DECL# define PJ_END_DECL#endif/** * @def PJ_DEF(type) * @param type The return type of the function. * Define a function. */#define PJ_DEF(type) type/** * @def PJ_EXPORT_SYMBOL(sym) * @param sym The symbol to export. * Export the specified symbol in compilation type that requires export * (e.g. Linux kernel). */#ifdef __PJ_EXPORT_SYMBOL# define PJ_EXPORT_SYMBOL(sym) __PJ_EXPORT_SYMBOL(sym)#else# define PJ_EXPORT_SYMBOL(sym)#endif/** * @def PJ_IDECL(type) * @param type The function's return type. * Declare a function that may be expanded as inline. *//** * @def PJ_IDEF(type) * @param type The function's return type. * Define a function that may be expanded as inline. */#if PJ_FUNCTIONS_ARE_INLINED# define PJ_IDECL(type) PJ_INLINE(type)# define PJ_IDEF(type) PJ_INLINE(type)#else# define PJ_IDECL(type) PJ_DECL(type)# define PJ_IDEF(type) PJ_DEF(type)#endif/** * @def PJ_UNUSED_ARG(arg) * @param arg The argument name. * PJ_UNUSED_ARG prevents warning about unused argument in a function. */#define PJ_UNUSED_ARG(arg) (void)arg/** * @def PJ_TODO(id) * @param id Any identifier that will be printed as TODO message. * PJ_TODO macro will display TODO message as warning during compilation. * Example: PJ_TODO(CLEAN_UP_ERROR); */#ifndef PJ_TODO# define PJ_TODO(id) TODO___##id:#endif/** * Function attributes to inform that the function may throw exception. * * @param x The exception list, enclosed in parenthesis. */#define __pj_throw__(x)/******************************************************************** * Sanity Checks */#ifndef PJ_HAS_HIGH_RES_TIMER# error "PJ_HAS_HIGH_RES_TIMER is not defined!"#endif#if !defined(PJ_HAS_PENTIUM)# error "PJ_HAS_PENTIUM is not defined!"#endif#if !defined(PJ_IS_LITTLE_ENDIAN)# error "PJ_IS_LITTLE_ENDIAN is not defined!"#endif#if !defined(PJ_IS_BIG_ENDIAN)# error "PJ_IS_BIG_ENDIAN is not defined!"#endif#if !defined(PJ_EMULATE_RWMUTEX)# error "PJ_EMULATE_RWMUTEX should be defined in compat/os_xx.h"#endif#if !defined(PJ_THREAD_SET_STACK_SIZE)# error "PJ_THREAD_SET_STACK_SIZE should be defined in compat/os_xx.h"#endif#if !defined(PJ_THREAD_ALLOCATE_STACK)# error "PJ_THREAD_ALLOCATE_STACK should be defined in compat/os_xx.h"#endifPJ_BEGIN_DECL/** * PJLIB version string. */extern const char *PJ_VERSION;/** * Dump configuration to log with verbosity equal to info(3). */PJ_DECL(void) pj_dump_config(void);PJ_END_DECL#endif /* __PJ_CONFIG_H__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -