/* -*- C++ -*- */
//========================================================
/**
* @file config-all.h
* config-all.h v1.0
* @author daihw
*
定义常用宏和常量
*/
//========================================================
#ifndef
ACE_CONFIG_ALL_H
#define
ACE_CONFIG_ALL_H
#include
"pre.h"
#include
"config.h"
//
根据宏定义程序编译一次
#if
!defined (ACE_LACKS_PRAGMA_ONCE)
# pragma
once
#endif
/*ACE_LACKS_PRAGMA_ONCE */
//=====================================================================
//
完成组播组过滤设计到RFC 3376 ,这里仅仅是向一个连接组传递流甚至组地址没
//
有绑定,默认情况下我们关闭这个选项,虽然大多数操作系统,除了Windows 和
//Solaris
或许会锁定完成组播过滤。
//=====================================================================
#if
!defined (ACE_LACKS_PERFECT_MULTICAST_FILTERING)
# define
ACE_LACKS_PERFECT_MULTICAST_FILTERLING 0
#endif
//=====================================================================
//
启用/禁用 特征,默认启用
//=====================================================================
#if
! defined (ACE_HAS_POSITION_INDEPENDENT_POINTERS)
# define
ACE_HAS_POSITION_INDEPENDENT_POINTERS 1
#endif
//=====================================================================
// RCSID
宏
//=====================================================================
//
默认情况下,包含 RCS ID 。
#if
!defined (ACE_USE_RCSID)
# define
ACE_USE_RCSID 1
#endif
#if
(defined (ACE_USE_RCSID) && (ACE_USE_RCSID !=0 ))
# if
! defined (ACE_RCSID)
//
下面代码实现的目的:
//1.
以静态 char*的格式定义RCS ID 字符变量 ,所以
不能在连接阶段被外部符号复制。
//2.
通过RCS ID 生成一个独特的名字防止同名引用。
//3.
避免 "variable declared and never used."的警告。
# define
ACE_RCSID(path,file,id)/
static inline const char* get_rcsid_ ## path ## _ ## file (const char*) /
{ /
return id; /
}/
static const char* rcsid_ ## path ## _ ## file= /
get_rcsid_ ## path ## _ ## file (rcsid_ ## path ## _ ## file );
#endif
/*#if ! defined (ACE_RCSID) */
#else
//
不再需要RCS ID 字符串
#if
defined (ACE_RCSID)
# undef
ACE_RCSID
# endif
/*# if defined (ACE_RCSID)*/
# define
ACE_RCSID (path, file,id) /* noop */
#endif
/* #if (defined (ACE_USE_RCSID) && (ACE_USE_RCSID !=0 )) */
//=======================================================================
// INLINE
宏
//
//
定义内联函数或内两文件的宏句柄
//=======================================================================
#if
defined (ACE_LACKS_INLINE_FUNCTIONS) && !defined (ACE_NO_INLINE)
# define
ACE_NO_INLINE
#endif
// ACE
内联已经明确的被声明无效。在ACE内部通过不定义__ACE_INLINE__来完成。
#if
defined (ACE_NO_INLINE)
#undef
__ACE_INLINE__
#endif
#if
defined (__ACE_INLINE__)
# define
ACE_INLINE inline
# if
!defined (ACE_HAS_INLINED_OSCALLS)
# define
ACE_HAS_INLINED_OSCALLS
# endif
/*!ACE_HAS_INLINED_OSCALLS */
#else
# define
ACE_INLINE
#endif
/* __ACE_INLINE__ */
#if
!defined (ACE_HAS_GNUC_BROKEN_TEMPLATE_INLINE_FUNCTIONS)
# define
ACE_INLINE_FOR_GNUC ACE_INLINE
#else
# define
ACE_INLINE_FOR_GNUC
#endif
/* ACE_HAS_GNUC_BROKEN_TEMPLATE_INLINE_FUNCTIONS */