ACE 的头文件包含

时间:2022-03-26 16:45:26

在使用 ACE 的过程中,发现项目组程序都是在使用到那个头文件的时候就引入一个头文件,结果一些头文件重复引用(在不同的文件中进行了重复引用),现在对 ACE 的头文件进行分类整理如下:

  1. 将所有的头文件按照功能的不同依次包含
  2. 消除互相包含中的基本头文件

整理后,任何工程只需要包含该头文件即可, 如果是在支持预编译的编译器上进行编译,还可以将该头文件直接包含在预编译头文件中,整理后的ACE头文件如下:

// ==================================================================================================
//     Summary:
//         ACE ( Adaptive Communication Environment ) Headers
//     
//     Comment:
//         <1>    This header is include by Stable_Headers.h
//         <2>    The headers which repeat include is removed
//
//     Referer:
//         <1>    ACE_Wrappers/docs/ACE-categories.html
//         <2>    ACE_Wrappers/docs/ACE-subsets.html
//
//     ---------------------------------------------------------------------------------------------
//     Copyright: Shine Energy Technology            Author: WonKerr                Date: 2009-08-04
// ==================================================================================================

#ifndef __ADAPTIVE_COMMUNICATION_ENVIRONMENT_HEADERS__
#define  __ADAPTIVE_COMMUNICATION_ENVIRONMENT_HEADERS__

// ==================================================================================================
//     Discard wraning of security on windows platform
#if     defined( _MSC_VER ) && defined( _WIN32 )
#    define _CRT_NON_CONFORMING_SWPRINTFS
#    define _CRT_NONSTDC_NO_DEPRECATE
#    define _CRT_NONSTDC_NO_WARNINGS
#    define _CRT_SECURE_NO_DEPRECATE
#    define _CRT_SECURE_NO_WARNINGS
#endif

// ==================================================================================================
//     ACE OS API Wrapper ( OS API Adapter )
#include  < ace / ACE.h >
#include 
< ace / OS.h >

// ==================================================================================================
//     ACE Codecs ( Only BASE64 )
#include  < ace / Codecs.h >

// ==================================================================================================
//     ACE CDR ( Common Data Stream Input / Output )
#include  < ace / CDR_Stream.h >

// ==================================================================================================
//     Containers
#include  < ace / Array.h >
#include 
< ace / Containers.h >
#include 
< ace / Hash_Map_Manager.h >
#include 
< ace / Filecache.h >
#include 
< ace / Free_List.h >
#include 
< ace / Managed_Object.h >
#include 
< ace / Map_Manager.h >
#include 
< ace / Object_Manager.h >
#include 
< ace / SString.h >

// ==================================================================================================
//     Concurrency
#include  < ace / Activation_Queue.h >
#include 
< ace / Future.h >
#include 
< ace / Method_Request.h >
#include 
< ace / Process.h >
#include 
< ace / Process_Manager.h >
#include 
< ace / Sched_Params.h >
#include 
< ace / Synch.h >
#include 
< ace / Synch_Options.h >
#include 
< ace / Synch_T.h >
#include 
< ace / Thread.h >
#include 
< ace / Thread_Manager.h >
#include 
< ace / Token.h >

// ==================================================================================================
//     Configuration
#include  < ace / Configuration_Import_Export.h >

// ==================================================================================================
//     Connection
#include  < ace / Acceptor.h >
#include 
< ace / Asynch_Acceptor.h >
#include 
< ace / Asynch_IO.h >
#include 
< ace / Connector.h >
#include 
< ace / Dynamic_Service.h >
#include 
< ace / Strategies.h >
#include 
< ace / Strategies_T.h >
#include 
< ace / Svc_Handler.h >

// ==================================================================================================
//     IO_SAP ( DEV_SAP / FILE_SAP ) 
#include  < ace / DEV_Connector.h >
#include 
< ace / FILE_Connector.h >
#include 
< ace / TTY_IO.h >

// ==================================================================================================
//     IPC_SAP ( Addr / FIFO_SAP / SOCK_SAP / SPIPE_SAP / UPIPE_SAP / Misc ) ( TLI & LSOCK Removed )
#include  < ace / FIFO_Recv_Msg.h >
#include 
< ace / FIFO_Send_Msg.h >

#include 
< ace / SOCK_CODgram.h >
#include 
< ace / SOCK_Dgram_Bcast.h >
#include 
< ace / SOCK_Dgram_Mcast.h >

#include 
< ace / SPIPE_Acceptor.h >
#include 
< ace / SPIPE_Connector.h >

#include 
< ace / UPIPE_Acceptor.h >
#include 
< ace / UPIPE_Connector.h >

#include 
< ace / MEM_Acceptor.h >
#include 
< ace / MEM_Connector.h >

#include 
< ace / IOStream.h >
#include 
< ace / Pipe.h >
#include 
< ace / Signal.h >

// ==================================================================================================
//     Logging & Tracing
#include  < ace / Dump.h >
#include 
< ace / Dump_T.h >
#include 
< ace / Log_Msg.h >
#include 
< ace / Log_Priority.h >
#include 
< ace / Log_Record.h >
#include 
< ace / Trace.h >

// ==================================================================================================
//     Memory ( Mem_Map / Shared_Malloc / Shared_Memory )
#include  < ace / Malloc_T.h >
#include 
< ace / Memory_Pool.h >
#include 
< ace / Shared_Memory_MM.h >
#include 
< ace / Shared_Memory_SV.h >

// ==================================================================================================
//     Utils
#include  < ace / Obstack.h >
#include 
< ace / Read_Buffer.h >

// ==================================================================================================
//     Misc
#include  < ace / ARGV.h >
#include 
< ace / Auto_Ptr.h >
#include 
< ace / Date_Time.h >
#include 
< ace / Dynamic.h >
#include 
< ace / Get_Opt.h >
#include 
< ace / Registry.h >
#include 
< ace / Singleton.h >
#include 
< ace / System_Time.h >

// ==================================================================================================
//     Name_Service
#include  < ace / Local_Name_Space.h >
#include 
< ace / Local_Name_Space_T.h >
#include 
< ace / Name_Proxy.h >
#include 
< ace / Name_Request_Reply.h >
#include 
< ace / Name_Space.h >
#include 
< ace / Naming_Context.h >
#include 
< ace / Registry_Name_Space.h >
#include 
< ace / Remote_Name_Space.h >

// ==================================================================================================
//     Reactor & Proactor
#include  < ace / Event_Handler_T.h >
#include 
< ace / Handle_Set.h >
#include 
< ace / Priority_Reactor.h >
#include 
< ace / Proactor.h >
#include 
< ace / Reactor.h >
#include 
< ace / TP_Reactor.h >

// ==================================================================================================
//     Service_Configurator
#include  < ace / DLL.h >
#include 
< ace / Parse_Node.h >
#include 
< ace / Service_Config.h >
#include 
< ace / Service_Manager.h >
#include 
< ace / Service_Object.h >
#include 
< ace / Service_Repository.h >
#include 
< ace / Service_Types.h >
#include 
< ace / Shared_Object.h >
#include 
< ace / Svc_Conf.h >
#include 
< ace / Svc_Conf_Tokens.h >

// ==================================================================================================
//     Streams
#include  < ace / IO_Cntl_Msg.h >
#include 
< ace / Message_Queue_T.h >
#include 
< ace / Module.h >
#include 
< ace / Stream.h >
#include 
< ace / Stream_Modules.h >
#include 
< ace / Task_T.h >

// ==================================================================================================
//     Timers
#include  < ace / Profile_Timer.h >
#include 
< ace / Time_Value.h >
#include 
< ace / Timer_Hash.h >
#include 
< ace / Timer_Heap.h >
#include 
< ace / Timer_List.h >
#include 
< ace / Timer_Queue.h >
#include 
< ace / Timer_Queue_Adapters.h >
#include 
< ace / Timer_Wheel.h >

// ==================================================================================================
//     Token_Service
#include  < ace / Remote_Tokens.h >
#include 
< ace / Token_Collection.h >
#include 
< ace / Token_Manager.h >
#include 
< ace / Token_Request_Reply.h >
#include 
< ace / Token_Invariants.h >

// ==================================================================================================
//     standalones
#include  < ace / Dirent.h >

// ==================================================================================================
#endif  /* __ADAPTIVE_COMMUNICATION_ENVIRONMENT_HEADERS__ */
如果有一个工程需要使用 ACE ,那么可以为该工程创建一个头文件 Stable_Headers.h 在该文件中首先引用该头文件,该工程内的所有源程序文件都包含 Stable_Headers.h , 如果在支持预编译的编译器上创建工程(例如 VC 系列编译器)那么可以在创建预编译的文件里面包含该该头文件,并将该头文件设置为预编译头文件即可;当然如果你也可以使用默认的 StdAfx.h 和 StdAfx.cpp 这两个名称;