ACE 的頭文件包含

在使用 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 這兩個名稱;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章