/* -*- 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 */